home *** CD-ROM | disk | FTP | other *** search
/ Nautilus 1992 July / Nautilus-3-8 / Nautilus-3-8.bin / Tools & Utilities / Techy Stuff / Development Environments ƒ / Perl 4.0.2 ƒ / perly.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-05  |  130.4 KB  |  3,084 lines

  1. #ifndef lint
  2. static char yysccsid[] = "@(#)yaccpar    1.8 (Berkeley) 01/20/90";
  3. #endif
  4. #define YYBYACC 1
  5. #line 23 ":perly.y"
  6. #include "INTERN.h"
  7. #include "perl.h"
  8.  
  9. /*SUPPRESS 530*/
  10. /*SUPPRESS 593*/
  11. /*SUPPRESS 595*/
  12.  
  13. STAB *scrstab;
  14. ARG *arg4;    /* rarely used arguments to make_op() */
  15. ARG *arg5;
  16.  
  17. #line 38 ":perly.y"
  18. typedef union {
  19.     int    ival;
  20.     char *cval;
  21.     ARG *arg;
  22.     CMD *cmdval;
  23.     struct compcmd compval;
  24.     STAB *stabval;
  25.     FCMD *formval;
  26. } YYSTYPE;
  27. #line 28 "y.tab.c"
  28. #define WORD 257
  29. #define APPEND 258
  30. #define OPEN 259
  31. #define SSELECT 260
  32. #define LOOPEX 261
  33. #define USING 262
  34. #define FORMAT 263
  35. #define DO 264
  36. #define SHIFT 265
  37. #define PUSH 266
  38. #define POP 267
  39. #define LVALFUN 268
  40. #define WHILE 269
  41. #define UNTIL 270
  42. #define IF 271
  43. #define UNLESS 272
  44. #define ELSE 273
  45. #define ELSIF 274
  46. #define CONTINUE 275
  47. #define SPLIT 276
  48. #define FLIST 277
  49. #define FOR 278
  50. #define FILOP 279
  51. #define FILOP2 280
  52. #define FILOP3 281
  53. #define FILOP4 282
  54. #define FILOP22 283
  55. #define FILOP25 284
  56. #define FUNC0 285
  57. #define FUNC1 286
  58. #define FUNC2 287
  59. #define FUNC2x 288
  60. #define FUNC3 289
  61. #define FUNC4 290
  62. #define FUNC5 291
  63. #define HSHFUN 292
  64. #define HSHFUN3 293
  65. #define FLIST2 294
  66. #define SUB 295
  67. #define FILETEST 296
  68. #define LOCAL 297
  69. #define DELETE 298
  70. #define RELOP 299
  71. #define EQOP 300
  72. #define MULOP 301
  73. #define ADDOP 302
  74. #define PACKAGE 303
  75. #define AMPER 304
  76. #define FORMLIST 305
  77. #define REG 306
  78. #define ARYLEN 307
  79. #define ARY 308
  80. #define HSH 309
  81. #define STAR 310
  82. #define SUBST 311
  83. #define PATTERN 312
  84. #define RSTRING 313
  85. #define TRANS 314
  86. #define LISTOP 315
  87. #define DOTDOT 316
  88. #define OROR 317
  89. #define ANDAND 318
  90. #define UNIOP 319
  91. #define LS 320
  92. #define RS 321
  93. #define MATCH 322
  94. #define NMATCH 323
  95. #define UMINUS 324
  96. #define POW 325
  97. #define INC 326
  98. #define DEC 327
  99. #define YYERRCODE 256
  100. short yylhs[] = {                                        -1,
  101.    26,    0,   25,   25,   12,   12,   12,    5,    3,    6,
  102.     6,    7,    7,    7,    7,    7,   10,   10,   10,   10,
  103.    10,   10,    9,    9,    9,    9,    8,    8,    8,    8,
  104.     8,    8,    8,    8,   11,   11,   21,   21,   24,   24,
  105.     1,    1,    1,    2,    2,   27,   28,   15,   13,   13,
  106.    16,   14,   14,   14,   14,   14,   14,   14,   14,   14,
  107.    14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
  108.    14,   14,   14,   14,   14,   14,   14,   17,   17,   17,
  109.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  110.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  111.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  112.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  113.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  114.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  115.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  116.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  117.    17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
  118.    22,   22,   22,   22,   22,   22,   18,   18,   19,   19,
  119.    20,   20,    4,    4,   23,
  120. };
  121. short yylen[] = {                                         2,
  122.     0,    2,    3,    2,    0,    2,    5,    4,    0,    0,
  123.     2,    1,    2,    1,    2,    3,    1,    1,    3,    3,
  124.     3,    3,    5,    5,    3,    3,    6,    6,    4,    4,
  125.     7,    6,   10,    2,    0,    1,    0,    1,    0,    2,
  126.     1,    1,    1,    4,    3,    3,    3,    2,    3,    1,
  127.     2,    3,    4,    4,    4,    4,    4,    4,    4,    4,
  128.     3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  129.     3,    3,    3,    5,    3,    3,    1,    2,    2,    2,
  130.     2,    2,    2,    2,    2,    2,    2,    1,    4,    3,
  131.     2,    2,    2,    1,    1,    4,    1,    1,    4,    6,
  132.     5,    4,    4,    5,    1,    1,    1,    1,    1,    5,
  133.     5,    4,    4,    2,    5,    5,    4,    4,    2,    1,
  134.     2,    1,    2,    2,    1,    2,    4,    7,    2,    4,
  135.     5,    4,    2,    2,    3,    1,    5,    6,    6,    7,
  136.     9,    6,    2,    4,    2,    4,    1,    1,    6,    5,
  137.     4,    5,    4,    2,    1,    1,    3,    3,    4,    5,
  138.     5,    6,    6,    7,    8,    4,    2,    6,    1,    1,
  139.     1,    2,    2,    3,    3,    3,    1,    1,    1,    1,
  140.     1,    1,    2,    1,    1,
  141. };
  142. short yydefred[] = {                                      1,
  143.     0,   10,    0,    0,    0,    0,    0,   12,   41,   11,
  144.    14,    0,   42,   43,   40,    0,    0,    0,    0,   17,
  145.     9,  185,    0,    0,    0,    0,    0,    0,    0,    0,
  146.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  147.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  148.     0,    0,    0,    0,    0,    0,    0,    0,  105,    0,
  149.    97,   95,  108,  107,  106,  109,    0,    0,    0,    0,
  150.     0,    0,    0,   15,    0,    0,    0,   13,    0,    0,
  151.     0,    0,  170,  169,   34,    0,   45,   46,   47,   10,
  152.   129,    0,  126,    0,  121,    0,    0,   93,    0,  179,
  153.   180,    0,  145,    0,    0,  143,  154,    0,    0,    0,
  154.     0,    0,    0,    0,    0,    0,    0,    0,    0,  133,
  155.   134,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  156.     0,    0,    0,    0,  181,  182,    0,  167,    0,    0,
  157.    86,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  158.     0,    0,    0,    0,  123,    0,    0,    0,   84,   85,
  159.     0,    0,    0,    0,    0,    0,    0,    4,   16,    0,
  160.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  161.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  162.     0,   82,   83,   44,    0,    0,    0,    0,    0,    0,
  163.     0,    0,    0,    0,    0,    0,    0,    0,   29,    0,
  164.    30,    0,   25,    0,   26,    0,    0,    0,   36,    0,
  165.     0,  135,    0,    0,    0,    0,    0,    0,  157,  158,
  166.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  167.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  168.     0,  184,    0,    0,    6,    0,    3,    0,    0,    0,
  169.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  170.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  171.     0,    0,    0,    0,    0,    0,    0,    8,  130,    0,
  172.     0,    0,    0,  127,  112,    0,  117,    0,  146,    0,
  173.   144,    0,    0,    0,    0,  151,    0,  153,    0,    0,
  174.     0,  132,    0,    0,    0,    0,    0,  159,    0,    0,
  175.     0,    0,    0,  166,    0,    0,   89,    0,  113,    0,
  176.   118,    0,   99,   96,  103,  102,    0,  183,    0,    0,
  177.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  178.   131,    0,    0,  110,  115,    0,   27,   28,   23,   24,
  179.   150,    0,    0,    0,   32,  137,    0,    0,    0,    0,
  180.   160,  161,    0,    0,    0,    0,    0,  152,  104,  111,
  181.   116,  101,    0,    0,    0,    0,  142,  149,   31,    0,
  182.   138,    0,  139,    0,  162,  163,    0,    0,  168,  100,
  183.     7,  128,    0,  140,    0,  164,    0,    0,    0,  165,
  184.    33,  141,
  185. };
  186. short yydgoto[] = {                                       1,
  187.     8,    9,   90,  254,   77,    3,   10,   11,   78,  219,
  188.   220,  168,   80,   81,  291,  293,   82,  198,  103,  138,
  189.   208,   83,   84,   12,   85,    2,   13,   14,
  190. };
  191. short yysindex[] = {                                      0,
  192.     0,    0, -175,  -25,  -59, -235, -231,    0,    0,    0,
  193.     0,  381,    0,    0,    0,   28, -266,  -80,   15,    0,
  194.     0,    0,  -36,  -29, -210,  557,  -33,   43,   -8, 2567,
  195.   -16,  -15,  -12,  -11,  108,  123,   -5,  -30,  139,  148,
  196.   162,  163,  168,  170,  171,  173,  175,  177,  178,  179,
  197.   -35,  180,  183, 2664,  190, -165, -230,  -55,    0,  -46,
  198.     0,    0,    0,    0,    0,    0,  751,  842, 2567, 2567,
  199.  2567, 2567,  926,    0, 2567, 2567,  -74,    0,   62,  -32,
  200.  3359, -135,    0,    0,    0,  -89,    0,    0,    0,    0,
  201.     0, 2758,    0, 2855,    0,  196,  -22,    0, -185,    0,
  202.     0, -237,    0, -237, -237,    0,    0, 2567,  -80, 2567,
  203.   -80, 2567,  -80, 2567,  -80, 2567, 2567,  210, 1036,    0,
  204.     0, 1130, 2855, 2855, 2855, 2855, 2855,  211, 1226, 2567,
  205.  2567, 2567, 2567, 2567,    0,    0, -248,    0, -248, 2567,
  206.     0, -185, 2567,  131,  215,  216, 2567, 2567, 2567, 2567,
  207.  2567, 6039, 2567,  207,    0, -185, -135, -135,    0,    0,
  208.   212,   18, -135, -135,  -80,  219,  -80,    0,    0, 2567,
  209.  2567, 2567, 2567, 2567, 2567, 2567, 1321, 1418, 2567, 2567,
  210.  2567, 2567, 2567, 1515, 1609, 1706, 1800, 1897, 2567, 2567,
  211.  1991,    0,    0,    0, -106,  222, 3359,  258,    0, 5823,
  212.   265, 2088, 2185,  276,  274,  278,  207,  280,    0,   23,
  213.     0,   81,    0,  109,    0, 5776,   18, 2567,    0,  263,
  214.   -38,    0,  282,  258,  281,  281,  288,  289,    0,    0,
  215.   117, 5855, 5823, 5823, 5823, 5823,  283,  281, 5855,   18,
  216.  2567, 2279, 2376,   -7,  -14,   -6,  -13,  207,  207,  207,
  217.  2567,    0, 2473,  252,    0, 2567,    0,  207,  207,  207,
  218.   207, 3359, -185,  114, 2567, -179, 2567, -223, 3359, 4199,
  219.   674, 2989,  792, 2567,  176, 2567,  176, 2567, -116, 2567,
  220.  -147, 2567, -147,   19,   19, 2567,   19,    0,    0, 2567,
  221.   304, 2567,  281,    0,    0,   18,    0,   18,    0, 2567,
  222.     0,  -80,  -80,  -80,  -80,    0,  124,    0,   18, 2567,
  223.   -80,    0,  334,  258,  281, 2855, 2855,    0,  345,  126,
  224.   258,  281,  281,    0,  258,  346,    0,   -2,    0,   18,
  225.     0,   18,    0,    0,    0,    0,   13,    0, 2567,  128,
  226.  3359, 3359, 2567, 3359, 3359, 3359, 3359, 3359, 3359,  207,
  227.     0, 3359,  281,    0,    0,   18,    0,    0,    0,    0,
  228.     0,  347,  -80,  332,    0,    0,  351,  258,  353,  281,
  229.     0,    0,  354,  357,  258,  281,  358,    0,    0,    0,
  230.     0,    0,   21,  -80,  661,  361,    0,    0,    0, 1036,
  231.     0,  362,    0,  281,    0,    0,  363,  258,    0,    0,
  232.     0,    0,  364,    0,  258,    0,  365,  -80,  367,    0,
  233.     0,    0,
  234. };
  235. short yyrindex[] = {                                      0,
  236.     0,    0,   70,    0,    0,    0,    0,    0,    0,    0,
  237.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  238.     0,    0,    0, 3134, 3146,    0, 3205,    0,    0, 5273,
  239.     0,    0,    0,    0, 3242,    0,    0, 3283,    0,    0,
  240.     0,    0,    0, 3532,    0,    0,    0,    0,    0,    0,
  241.     0,    0,    0, 5310,    0,    0,    0, 3573,    0, 3610,
  242.     0,    0,    0,    0,    0,    0, 5347, 5385,    0,    0,
  243.     0,    0,    0,    0,    0,    0,    1,    0,    0,    7,
  244.  3594, 5422,    0,    0,    0,    0,    0,    0,    0,    0,
  245.     0,    0,    0,    0,    0, 3647, 3573,    0,  101,    0,
  246.     0,    0,    0,    0,    0,    0,    0,  368,    0,    0,
  247.     0,    0,    0,    0,    0,    0,    0,    0,  352,    0,
  248.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  249.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  250.     0, 4881,    0,    0, 3684, 3722,    0,    0,    0,    0,
  251.  5637, 3573,    0, 4049,    0, 4918, 5674, 5711,    0,    0,
  252.  3974,    0, 5748, 5786,    0,    0,    0,    0,    0,    0,
  253.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  254.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  255.     0,    0,    0,    0,  450, 4774,  136,    0,  962,  369,
  256.     0,    0,    0,    0,    0,    0,   22,    0,    0,    0,
  257.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  258.   366,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  259.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  260.     0,    0,    0,    0,    0,    0,    0, 4086, 4123, 4161,
  261.     0,    0,    0, 4012,    0,    0,    0,   31,   32,   45,
  262.    46, 3671, 4955, 4992,    0, 4525,    0, 4562, 3937,    0,
  263.   501, 6150, 3172,    0, 6123,    0, 6144,    0, 5236,    0,
  264.  4600,    0, 4843, 4413, 4451,    0, 4488,    0,    0,    0,
  265.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  266.     0,    0,    0,    0,    0,    0,    0,    0,    0,  370,
  267.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  268.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  269.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  270.  4033, 4037,    0, 4073, 4110, 4512, 4550, 4902, 4914,  371,
  271.     0,  146,    0,    0,    0,    0,    0,    0,    0,    0,
  272.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  273.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  274.     0,    0,    0,    0, 3159,    0,    0,    0,    0,  379,
  275.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  276.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  277.     0,    0,
  278. };
  279. short yygindex[] = {                                      0,
  280.     0,    0,    0, -200,  -18,  333,    0,    0,    0,  410,
  281.    40,    0, 6370,  339,  218, -141,  172,  -71,   29,   34,
  282.   122,    0,    0,    0, 1069,    0,    0,    0,
  283. };
  284. #define YYTABLESIZE 6709
  285. short yytable[] = {                                      88,
  286.     5,   17,  252,   92,  137,  253,  102,   98,  135,  122,
  287.    94,  174,  109,  111,  113,  115,  308,  203,  288,  100,
  288.   311,   18,  201,  108,  110,   19,  145,  112,  114,  174,
  289.   174,  105,   15,    5,  119,  148,  174,  174,   87,  327,
  290.     5,  174,   21,    5,  150,    5,   95,   18,  153,  155,
  291.   223,  224,  225,  226,  227,  228,  174,  106,  252,    5,
  292.   136,  253,   38,  303,  174,   18,  174,  147,  148,    2,
  293.   101,   21,   22,   89,  307,  146,  149,  177,  334,  336,
  294.    38,    4,  104,  314,  315,   19,   20,    5,   86,   21,
  295.    22,  320,  321,  322,  323,  354,  325,  355,  189,  190,
  296.   147,  191,   39,   19,   20,  382,   21,   21,  363,   39,
  297.    21,   21,   39,  400,   39,  177,  178,  333,  335,    6,
  298.   169,  304,  379,    5,  174,    5,    5,    7,   39,  380,
  299.   204,  381,  205,  206,  187,  188,  189,  190,   92,  191,
  300.   144,   92,  189,  190,   92,  191,  255,  116,  257,  305,
  301.     4,  353,  174,  177,  178,  387,    5,  318,   92,   92,
  302.   174,   92,  117,   92,  361,  362,  372,  292,  384,  290,
  303.   237,  174,  238,  368,  189,  190,  178,  191,  123,  178,
  304.   375,  376,  175,  176,  177,  178,   51,  124,    6,   51,
  305.   192,  193,   39,   92,   92,   39,    7,   16,  165,  166,
  306.   167,  125,  126,  187,  188,  189,  190,  127,  191,  128,
  307.   129,  386,  130,  186,  131,  194,  132,  133,  134,  139,
  308.    91,  135,  140,  100,   92,   92,  120,   93,  394,  143,
  309.   170,  171,  172,  173,  398,  202,  170,  171,  172,  173,
  310.   157,  158,  159,  160,  369,  370,  163,  164,  100,  218,
  311.   174,  229,  405,  241,  242,  243,    5,    5,  256,    5,
  312.     5,    5,  289,    5,    5,    5,    5,    5,    5,    5,
  313.     5,    5,    5,  136,  101,  121,    5,    5,    5,    5,
  314.     5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  315.     5,    5,    5,    5,    5,    5,    5,    5,    5,  101,
  316.   118,  290,  251,    5,    5,  294,    5,    5,    5,    5,
  317.     5,    5,    5,    5,    5,    5,  299,  300,  301,    5,
  318.   302,  310,  312,  324,  292,   39,    5,    5,   39,   39,
  319.    39,  316,  317,   39,   39,   39,   39,   39,   39,   39,
  320.    39,   39,  339,  191,  351,   39,   39,   39,   39,   39,
  321.    39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  322.    39,   39,   39,   39,   99,   39,   39,   39,  107,   92,
  323.    92,   92,   92,   39,  366,   39,   39,   39,   39,   39,
  324.    39,   39,   39,   39,   39,  371,  378,  388,   39,  411,
  325.   390,  391,  142,  393,  395,   39,   39,  396,  399,   92,
  326.    92,  402,  404,  406,  408,  410,  156,  412,   37,  178,
  327.    35,   48,  175,   69,  177,  178,   92,   92,   92,   35,
  328.    73,   79,  195,   76,   18,   75,   92,   92,   37,  403,
  329.   197,  364,  200,  187,  188,  189,  190,    0,  191,   74,
  330.     0,  313,    0,    0,    0,    0,    0,    0,    0,  319,
  331.     0,    0,    0,    0,  216,    0,  326,    0,    0,    0,
  332.   197,  197,  197,  197,  197,  197,    0,    0,  232,  233,
  333.   234,  235,  236,    0,  175,  176,  177,  178,  239,    0,
  334.     0,    0,   39,    0,    0,    0,    0,    0,    0,   39,
  335.     0,    0,   39,    0,   39,  187,  188,  189,  190,    0,
  336.   191,    0,    0,   21,    0,    0,   70,    0,   39,    0,
  337.     0,    0,  262,  263,  264,  266,  268,  269,  270,  271,
  338.   272,  273,  275,  277,  279,  281,  283,  284,  285,  287,
  339.     0,  367,    0,    0,    0,    0,    0,  373,  374,    0,
  340.     0,   71,  377,    0,   71,    0,    0,    0,    0,    0,
  341.     0,    0,    0,    0,    0,    0,    0,    0,   71,   71,
  342.     0,   71,    0,   71,    0,    0,    0,    0,    0,    0,
  343.     0,    0,   39,    0,    0,   39,    0,    0,    0,    0,
  344.     0,    0,    0,    0,    0,  392,    0,    0,    0,   69,
  345.     0,  262,  397,   71,    0,    0,   73,    0,    0,   76,
  346.     0,   75,    0,  341,    0,  342,    0,    0,    0,    0,
  347.     0,    0,  344,    0,  345,  407,  346,    0,  347,    0,
  348.   348,    0,  409,    0,  349,   71,    0,    0,    0,    0,
  349.   352,    0,    0,    0,    0,    0,   20,   22,    0,   23,
  350.    24,   25,    0,    0,   26,   27,   28,   29,   30,   31,
  351.    32,   33,   34,    0,  197,  197,   35,   36,   37,   38,
  352.    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
  353.    49,   50,   51,   52,   53,    0,   54,   55,   56,   21,
  354.     0,  385,   70,    0,   57,    0,   58,   59,   60,   61,
  355.    62,   63,   64,   65,   66,   67,    0,    0,  186,   68,
  356.     0,    0,    0,    0,    0,   39,   71,   72,   39,   39,
  357.    39,  186,    0,   39,   39,   39,   39,   39,   39,   39,
  358.    39,   39,    0,  180,    0,   39,   39,   39,   39,   39,
  359.    39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  360.    39,   39,   39,   39,    0,   39,   39,   39,    0,    0,
  361.     0,    0,    0,   39,  185,   39,   39,   39,   39,   39,
  362.    39,   39,   39,   39,   39,    0,    0,  185,   39,   71,
  363.    71,   71,   71,    0,    0,   39,   39,    0,    0,    0,
  364.     0,    0,    0,   69,  184,    0,    0,    0,    0,    0,
  365.    73,    0,    0,   76,    0,   75,    0,  184,    0,    0,
  366.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  367.     0,    0,    0,   96,    0,   23,   24,   25,    0,    0,
  368.    26,   27,   28,   29,   30,    0,   71,   71,    0,  186,
  369.     0,    0,   35,   36,    0,   38,   39,   40,   41,   42,
  370.    43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
  371.    53,    0,   54,   55,   56,    0,    0,    0,    0,    0,
  372.    57,    0,   97,   59,   60,   61,   62,   63,   64,   65,
  373.    66,   67,    0,   21,   69,   68,   70,    0,    0,    0,
  374.     0,   73,   71,   72,   76,  185,   75,    0,    0,    0,
  375.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  376.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  377.     0,    0,    0,    0,    0,  184,    0,    0,    0,    0,
  378.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  379.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  380.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  381.     0,    0,    0,    0,    0,    0,    0,    0,   69,  175,
  382.   176,  177,  178,    0,   21,   73,  161,   70,   76,    0,
  383.    75,    0,  175,  176,  177,  178,  181,  182,  183,    0,
  384.   187,  188,  189,  190,    0,  191,    0,    0,    0,    0,
  385.   182,  183,    0,  187,  188,  189,  190,    0,  191,  185,
  386.     0,    0,  177,    0,    0,  177,    0,  151,    0,   23,
  387.    24,   25,    0,    0,   26,   27,   28,   29,   30,    0,
  388.     0,    0,  185,    0,  185,    0,   35,   36,    0,   38,
  389.    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
  390.    49,   50,   51,   52,   53,    0,   54,   55,   56,    0,
  391.     0,   70,    0,    0,   57,  185,  152,   59,   60,   61,
  392.    62,   63,   64,   65,   66,   67,    0,    0,   69,   68,
  393.     0,    0,    0,    0,    0,   73,   71,   72,   76,    0,
  394.    75,    0,    0,    0,    0,  185,    0,    0,    0,    0,
  395.   175,  176,  177,  178,    0,    0,    0,    0,   22,    0,
  396.    23,   24,   25,    0,    0,   26,   27,   28,   29,   30,
  397.     0,  187,  188,  189,  190,    0,  191,   35,   36,    0,
  398.    38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
  399.    48,   49,   50,   51,   52,   53,    0,   54,   55,   56,
  400.     0,    0,    0,    0,    0,   57,    0,   58,   59,   60,
  401.    61,   62,   63,   64,   65,   66,   67,    0,    0,    0,
  402.    68,   70,   69,    0,    0,    0,    0,   71,   72,   73,
  403.   222,    0,   76,    0,   75,    0,    0,  209,    0,  211,
  404.     0,  213,   22,  215,   23,   24,   25,    0,    0,   26,
  405.    27,   28,   29,   30,    0,    0,    0,    0,    0,    0,
  406.     0,   35,   36,    0,   38,   39,   40,   41,   42,   43,
  407.    44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
  408.     0,   54,   55,   56,    0,    0,    0,    0,    0,   57,
  409.     0,   58,   59,   60,   61,   62,   63,   64,   65,   66,
  410.    67,    0,    0,    0,   68,    0,    0,    0,    0,    0,
  411.     0,   71,   72,    0,    0,   70,    0,    0,   69,    0,
  412.   185,  185,  185,  185,    0,   73,  230,    0,   76,    0,
  413.    75,    0,    0,    0,    0,    0,    0,  185,  185,  185,
  414.     0,  185,  185,  185,  185,    0,  185,  185,  185,    0,
  415.     0,   20,   22,    0,   23,   24,   25,    0,    0,   26,
  416.    27,   28,   29,   30,    0,    0,    0,    0,    0,    0,
  417.     0,   35,   36,    0,   38,   39,   40,   41,   42,   43,
  418.    44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
  419.     0,   54,   55,   56,    0,    0,    0,    0,    0,   57,
  420.     0,   58,   59,   60,   61,   62,   63,   64,   65,   66,
  421.    67,   70,    0,   69,   68,    0,    0,    0,    0,    0,
  422.    73,   71,   72,   76,    0,   75,    0,    0,    0,    0,
  423.   357,  358,  359,  360,    0,    0,    0,    0,    0,  365,
  424.     0,  265,    0,    0,    0,    0,  199,    0,   23,   24,
  425.    25,    0,    0,   26,   27,   28,   29,   30,    0,    0,
  426.     0,    0,    0,    0,    0,   35,   36,    0,   38,   39,
  427.    40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
  428.    50,   51,   52,   53,    0,   54,   55,   56,    0,    0,
  429.     0,  389,    0,   57,    0,   58,   59,   60,   61,   62,
  430.    63,   64,   65,   66,   67,    0,   70,    0,   68,    0,
  431.    69,    0,  401,    0,    0,   71,   72,   73,    0,    0,
  432.    76,    0,   75,    0,    0,    0,    0,    0,    0,    0,
  433.     0,    0,    0,    0,    0,    0,    0,    0,  267,    0,
  434.     0,    0,   22,    0,   23,   24,   25,    0,    0,   26,
  435.    27,   28,   29,   30,    0,    0,    0,    0,    0,    0,
  436.     0,   35,   36,    0,   38,   39,   40,   41,   42,   43,
  437.    44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
  438.     0,   54,   55,   56,    0,    0,    0,    0,    0,   57,
  439.     0,   58,   59,   60,   61,   62,   63,   64,   65,   66,
  440.    67,    0,    0,   70,   68,    0,    0,   69,    0,    0,
  441.     0,   71,   72,    0,   73,    0,    0,   76,    0,   75,
  442.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  443.     0,    0,    0,    0,    0,  274,    0,   22,    0,   23,
  444.    24,   25,    0,    0,   26,   27,   28,   29,   30,    0,
  445.     0,    0,    0,    0,    0,    0,   35,   36,    0,   38,
  446.    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
  447.    49,   50,   51,   52,   53,    0,   54,   55,   56,    0,
  448.     0,    0,    0,    0,   57,    0,   58,   59,   60,   61,
  449.    62,   63,   64,   65,   66,   67,    0,    0,    0,   68,
  450.    70,   69,    0,    0,    0,    0,   71,   72,   73,    0,
  451.     0,   76,    0,   75,    0,    0,    0,    0,    0,    0,
  452.     0,    0,    0,    0,    0,    0,    0,    0,    0,  276,
  453.     0,    0,    0,    0,   22,    0,   23,   24,   25,    0,
  454.     0,   26,   27,   28,   29,   30,    0,    0,    0,    0,
  455.     0,    0,    0,   35,   36,    0,   38,   39,   40,   41,
  456.    42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
  457.    52,   53,    0,   54,   55,   56,    0,    0,    0,    0,
  458.     0,   57,    0,   58,   59,   60,   61,   62,   63,   64,
  459.    65,   66,   67,    0,   70,    0,   68,    0,   69,    0,
  460.     0,    0,    0,   71,   72,   73,    0,    0,   76,    0,
  461.    75,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  462.     0,    0,    0,    0,    0,    0,  278,    0,    0,    0,
  463.     0,   22,    0,   23,   24,   25,    0,    0,   26,   27,
  464.    28,   29,   30,    0,    0,    0,    0,    0,    0,    0,
  465.    35,   36,    0,   38,   39,   40,   41,   42,   43,   44,
  466.    45,   46,   47,   48,   49,   50,   51,   52,   53,    0,
  467.    54,   55,   56,    0,    0,    0,    0,    0,   57,    0,
  468.    58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
  469.     0,   70,   69,   68,    0,    0,    0,    0,    0,   73,
  470.    71,   72,   76,    0,   75,    0,    0,    0,    0,    0,
  471.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  472.   280,    0,    0,    0,    0,   22,    0,   23,   24,   25,
  473.     0,    0,   26,   27,   28,   29,   30,    0,    0,    0,
  474.     0,    0,    0,    0,   35,   36,    0,   38,   39,   40,
  475.    41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
  476.    51,   52,   53,    0,   54,   55,   56,    0,    0,    0,
  477.     0,    0,   57,    0,   58,   59,   60,   61,   62,   63,
  478.    64,   65,   66,   67,    0,   70,    0,   68,    0,   69,
  479.     0,    0,    0,    0,   71,   72,   73,    0,    0,   76,
  480.     0,   75,    0,    0,    0,    0,    0,    0,    0,    0,
  481.     0,    0,    0,    0,    0,    0,    0,  282,    0,    0,
  482.     0,    0,   22,    0,   23,   24,   25,    0,    0,   26,
  483.    27,   28,   29,   30,    0,    0,    0,    0,    0,    0,
  484.     0,   35,   36,    0,   38,   39,   40,   41,   42,   43,
  485.    44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
  486.     0,   54,   55,   56,    0,    0,    0,    0,    0,   57,
  487.     0,   58,   59,   60,   61,   62,   63,   64,   65,   66,
  488.    67,    0,   70,   69,   68,    0,    0,    0,    0,    0,
  489.    73,   71,   72,   76,    0,   75,    0,    0,    0,    0,
  490.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  491.     0,  286,    0,    0,    0,    0,   22,    0,   23,   24,
  492.    25,    0,    0,   26,   27,   28,   29,   30,    0,    0,
  493.     0,    0,    0,    0,    0,   35,   36,    0,   38,   39,
  494.    40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
  495.    50,   51,   52,   53,    0,   54,   55,   56,    0,    0,
  496.     0,    0,    0,   57,    0,   58,   59,   60,   61,   62,
  497.    63,   64,   65,   66,   67,    0,   70,    0,   68,    0,
  498.    69,    0,    0,    0,    0,   71,   72,   73,  295,    0,
  499.    76,    0,   75,    0,    0,    0,    0,    0,    0,    0,
  500.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  501.     0,    0,    0,   22,    0,   23,   24,   25,    0,    0,
  502.    26,   27,   28,   29,   30,    0,    0,    0,    0,    0,
  503.     0,    0,   35,   36,    0,   38,   39,   40,   41,   42,
  504.    43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
  505.    53,    0,   54,   55,   56,    0,    0,    0,    0,    0,
  506.    57,    0,   58,   59,   60,   61,   62,   63,   64,   65,
  507.    66,   67,    0,   70,    0,   68,    0,   69,    0,    0,
  508.     0,    0,   71,   72,   73,  297,    0,   76,    0,   75,
  509.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  510.     0,    0,    0,    0,    0,    0,    0,   22,    0,   23,
  511.    24,   25,    0,    0,   26,   27,   28,   29,   30,    0,
  512.     0,    0,    0,    0,    0,    0,   35,   36,    0,   38,
  513.    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
  514.    49,   50,   51,   52,   53,    0,   54,   55,   56,    0,
  515.     0,    0,    0,    0,   57,    0,   58,   59,   60,   61,
  516.    62,   63,   64,   65,   66,   67,    0,    0,    0,   68,
  517.    70,   69,    0,    0,    0,    0,   71,   72,   73,  329,
  518.     0,   76,    0,   75,    0,    0,    0,    0,    0,    0,
  519.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  520.     0,    0,    0,    0,   22,    0,   23,   24,   25,    0,
  521.     0,   26,   27,   28,   29,   30,    0,    0,    0,    0,
  522.     0,    0,    0,   35,   36,    0,   38,   39,   40,   41,
  523.    42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
  524.    52,   53,    0,   54,   55,   56,    0,    0,    0,    0,
  525.     0,   57,    0,   58,   59,   60,   61,   62,   63,   64,
  526.    65,   66,   67,    0,   70,    0,   68,    0,   69,    0,
  527.     0,    0,    0,   71,   72,   73,  331,    0,   76,    0,
  528.    75,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  529.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  530.     0,   22,    0,   23,   24,   25,    0,    0,   26,   27,
  531.    28,   29,   30,    0,    0,    0,    0,    0,    0,    0,
  532.    35,   36,    0,   38,   39,   40,   41,   42,   43,   44,
  533.    45,   46,   47,   48,   49,   50,   51,   52,   53,    0,
  534.    54,   55,   56,    0,    0,    0,    0,    0,   57,    0,
  535.    58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
  536.     0,   70,    0,   68,    0,   69,    0,    0,    0,    0,
  537.    71,   72,   73,  338,    0,   76,    0,   75,    0,    0,
  538.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  539.     0,    0,    0,    0,    0,   22,    0,   23,   24,   25,
  540.     0,    0,   26,   27,   28,   29,   30,    0,    0,    0,
  541.     0,    0,    0,    0,   35,   36,    0,   38,   39,   40,
  542.    41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
  543.    51,   52,   53,    0,   54,   55,   56,    0,    0,    0,
  544.     0,    0,   57,    0,   58,   59,   60,   61,   62,   63,
  545.    64,   65,   66,   67,    0,    0,    0,   68,   70,   69,
  546.     0,    0,    0,    0,   71,   72,   73,    0,    0,   76,
  547.     0,   75,    0,    0,    0,    0,    0,    0,    0,    0,
  548.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  549.     0,    0,   22,    0,   23,   24,   25,    0,    0,   26,
  550.    27,   28,   29,   30,    0,    0,    0,    0,    0,    0,
  551.     0,   35,   36,    0,   38,   39,   40,   41,   42,   43,
  552.    44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
  553.     0,   54,   55,   56,    0,    0,    0,    0,    0,   57,
  554.     0,   58,   59,   60,   61,   62,   63,   64,   65,   66,
  555.    67,    0,   70,    0,   68,    0,   69,    0,    0,    0,
  556.     0,   71,   72,   73,    0,    0,   76,    0,   75,    0,
  557.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  558.     0,    0,    0,    0,    0,    0,    0,    0,    0,   22,
  559.     0,   23,   24,   25,    0,    0,   26,   27,   28,   29,
  560.    30,    0,    0,    0,    0,    0,    0,    0,   35,   36,
  561.     0,   38,   39,   40,   41,   42,   43,   44,   45,   46,
  562.    47,   48,   49,   50,   51,   52,   53,    0,   54,   55,
  563.    56,    0,    0,    0,    0,    0,   57,    0,   58,   59,
  564.    60,   61,   62,   63,   64,   65,   66,   67,    0,   70,
  565.    69,   68,    0,    0,    0,    0,    0,   73,   71,   72,
  566.    76,    0,   75,    0,    0,    0,    0,    0,    0,    0,
  567.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  568.     0,    0,    0,   22,    0,   23,   24,   25,    0,    0,
  569.    26,   27,   28,   29,   30,    0,    0,    0,    0,    0,
  570.     0,    0,   35,   36,    0,   38,   39,   40,   41,   42,
  571.    43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
  572.    53,    0,   54,   55,   56,    0,    0,    0,    0,    0,
  573.    57,    0,   58,   59,   60,   61,   62,   63,   64,   65,
  574.    66,   67,    0,   70,    0,   68,    0,   69,    0,    0,
  575.     0,    0,   71,   72,   73,    0,    0,   76,    0,   75,
  576.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  577.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  578.   141,    0,   23,   24,   25,    0,    0,   26,   27,   28,
  579.    29,   30,    0,    0,    0,    0,    0,    0,    0,   35,
  580.    36,    0,   38,   39,   40,   41,   42,   43,   44,   45,
  581.    46,   47,   48,   49,   50,   51,   52,   53,    0,   54,
  582.    55,   56,    0,    0,    0,    0,    0,   57,    0,   58,
  583.    59,   60,   61,   62,   63,   64,   65,   66,   67,    0,
  584.    70,    0,   68,    0,    0,    0,    0,    0,    0,   71,
  585.    72,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  586.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  587.     0,    0,    0,    0,  196,    0,   23,   24,   25,    0,
  588.     0,   26,   27,   28,   29,   30,  186,    0,    0,    0,
  589.     0,    0,    0,   35,   36,    0,   38,   39,   40,   41,
  590.    42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
  591.    52,   53,    0,   54,   55,   56,    0,    0,    0,    0,
  592.     0,   57,    0,   58,   59,   60,   61,   62,   63,   64,
  593.    65,   66,   67,    0,    0,    0,   68,    0,    0,    0,
  594.     0,    0,  185,   71,   72,    0,    0,    0,    0,    0,
  595.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  596.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  597.     0,  199,  184,   23,   24,   25,    0,    0,   26,   27,
  598.    28,   29,   30,    0,    0,    0,    0,    0,    0,    0,
  599.    35,   36,    0,   38,   39,   40,   41,   42,   43,   44,
  600.    45,   46,   47,   48,   49,   50,   51,   52,   53,    0,
  601.    54,   55,   56,    0,    0,    0,    0,    0,   57,    0,
  602.    58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
  603.     0,  125,    0,   68,  125,    0,    0,  125,    0,    0,
  604.    71,   72,    0,  120,    0,    0,  120,    0,    0,  120,
  605.     0,  125,  125,    0,  125,    0,  125,    0,    0,   74,
  606.     0,    0,   74,  120,  120,    0,  120,    0,  120,    0,
  607.     0,    0,   72,    0,    0,   72,   74,   74,    0,   74,
  608.     0,    0,    0,    0,    0,    0,  125,  125,    0,   72,
  609.    72,    0,   72,    0,   72,    0,    0,    0,  120,  120,
  610.     0,    0,  147,    0,    0,  147,    0,    0,  147,    0,
  611.     0,   74,    0,    0,    0,    0,    0,  125,  125,    0,
  612.     0,    0,  147,  147,   72,  147,    0,  147,    0,  120,
  613.   120,    0,    0,    0,    0,    0,    0,    0,    0,  148,
  614.     0,    0,  148,   74,    0,  148,    0,  175,  176,  177,
  615.   178,    0,    0,    0,    0,    0,   72,  147,  147,  148,
  616.   148,    0,  148,    0,  148,    0,  183,    0,  187,  188,
  617.   189,  190,    0,  191,    0,    0,    0,    0,    0,    0,
  618.   136,    0,    0,  136,    0,    0,  136,    0,  147,  147,
  619.     0,    0,    0,    0,  148,  148,    0,    0,    0,    0,
  620.   136,  136,    0,  136,    0,  136,    0,    0,    0,    0,
  621.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  622.     0,    0,    0,    0,    0,  148,  148,    0,    0,    0,
  623.     0,    0,    0,    0,    0,  136,  136,    0,    0,    0,
  624.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  625.     0,    0,    0,    0,    0,    0,  186,    0,    0,    0,
  626.     0,    0,  125,  125,  125,  125,  136,  136,    0,    0,
  627.     0,    0,    0,    0,  120,  120,  120,  120,    0,  179,
  628.     0,  180,    0,    0,    0,    0,    0,   74,   74,   74,
  629.    74,    0,  125,  125,  125,  125,    0,    0,    0,    0,
  630.    72,   72,   72,   72,  120,  120,  120,  120,    0,  125,
  631.   125,  125,  185,  125,  125,  125,  125,    0,  125,  125,
  632.   125,  120,  120,  120,    0,  120,  120,  120,  120,    0,
  633.   120,  120,  120,  147,  147,  147,  147,    0,    0,    0,
  634.     0,    0,  184,    0,   74,   74,    0,   72,   72,   72,
  635.     0,    0,    0,    0,    0,    0,    0,   72,   72,    0,
  636.     0,    0,    0,  147,  147,  147,  147,    0,    0,    0,
  637.   148,  148,  148,  148,    0,    0,    0,    0,    0,    0,
  638.   147,  147,  147,    0,  147,  147,  147,  147,    0,  147,
  639.   147,  147,    0,    0,    0,    0,    0,    0,    0,    0,
  640.   148,  148,  148,  148,    0,    0,    0,    0,    0,    0,
  641.     0,  136,  136,  136,  136,    0,    0,  148,  148,  148,
  642.     0,  148,  148,  148,  148,    0,  148,  148,  148,  156,
  643.     0,    0,  156,    0,    0,  156,    0,    0,    0,    0,
  644.     0,  136,  136,  136,  136,    0,    0,    0,    0,  156,
  645.   156,    0,  156,    0,  156,    0,    0,    0,  136,  136,
  646.   136,    0,  136,  136,  136,  136,    0,  136,  136,  136,
  647.    94,    0,    0,   94,    0,    0,   94,    0,    0,    0,
  648.     0,    0,    0,    0,  156,  156,    0,    0,    0,    0,
  649.    94,   94,    0,   94,   50,   94,    0,   50,    0,    0,
  650.     0,    0,    0,    0,    0,    0,    0,   98,    0,    0,
  651.    98,   50,   50,   98,    0,  156,  156,  175,  176,  177,
  652.   178,    0,    0,    0,    0,   94,   94,   98,   98,    0,
  653.    98,    0,   98,    0,  181,  182,  183,    0,  187,  188,
  654.   189,  190,    0,  191,  185,    0,   50,  185,    0,    0,
  655.   185,    0,    0,    0,    0,    0,   94,   94,    0,    0,
  656.     0,    0,   98,   98,  185,  185,    0,  185,    0,  185,
  657.     0,   49,    0,    0,   49,    0,    0,    0,   50,    0,
  658.     0,  114,    0,    0,  114,    0,    0,  114,   49,   49,
  659.     0,    0,    0,   98,   98,    0,    0,    0,    0,  185,
  660.   185,  114,  114,    0,  114,    0,  114,    0,    0,    0,
  661.     0,    0,    0,    0,    0,    0,    0,    0,    0,  119,
  662.     0,    0,  119,   49,    0,  119,    0,    0,    0,    0,
  663.   185,  185,    0,    0,    0,    0,  114,  114,    0,  119,
  664.   119,    0,  119,    0,  119,    0,    0,    0,    0,    0,
  665.     0,    0,    0,    0,    0,   49,    0,    0,    0,    0,
  666.   156,  156,  156,  156,    0,    0,    0,  114,  114,    0,
  667.     0,    0,    0,    0,  119,  119,    0,    0,    0,    0,
  668.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  669.   156,  156,  156,  156,    0,    0,    0,    0,    0,    0,
  670.     0,   94,   94,   94,   94,  119,  119,  156,  156,  156,
  671.     0,  156,  156,  156,  156,    0,  156,  156,  156,    0,
  672.     0,    0,   50,   50,   50,   50,    0,    0,    0,    0,
  673.     0,   94,   94,   94,   94,    0,    0,    0,   98,   98,
  674.    98,   98,    0,    0,    0,    0,    0,    0,   94,   94,
  675.    94,    0,   94,   94,   94,   94,    0,   94,   94,   94,
  676.     0,    0,    0,    0,    0,    0,    0,    0,   98,   98,
  677.    98,   98,    0,    0,    0,  185,  185,  185,  185,   50,
  678.    50,    0,    0,    0,    0,   98,   98,   98,    0,   98,
  679.    98,   98,   98,    0,   98,   98,   98,    0,    0,   49,
  680.    49,   49,   49,    0,    0,  185,  185,  185,  185,    0,
  681.     0,    0,  114,  114,  114,  114,    0,    0,    0,    0,
  682.     0,    0,  185,  185,  185,    0,  185,  185,  185,  185,
  683.     0,  185,  185,  185,    0,    0,    0,   52,    0,    0,
  684.    52,    0,  114,  114,  114,  114,    0,    0,    0,    0,
  685.   119,  119,  119,  119,   52,   52,   49,   49,    0,  114,
  686.   114,  114,    0,  114,  114,  114,  114,    0,  114,  114,
  687.   114,   91,    0,    0,   91,    0,    0,   91,    0,    0,
  688.   119,  119,  119,  119,    0,    0,    0,    0,    0,   52,
  689.     0,   91,   91,    0,   91,    0,   91,  119,  119,  119,
  690.     0,  119,  119,  119,  119,    0,  119,  119,  119,   90,
  691.     0,    0,   90,    0,    0,   90,    0,    0,    0,    0,
  692.     0,   52,    0,    0,    0,    0,   91,   91,    0,   90,
  693.    90,    0,   90,   54,   90,    0,   54,   55,    0,    0,
  694.    55,    0,    0,    0,    0,    0,  172,    0,    0,  172,
  695.    54,   54,    0,    0,   55,   55,    0,   91,   91,    0,
  696.     0,    0,    0,    0,   90,   90,  172,  172,    0,  172,
  697.     0,  172,    0,   60,    0,    0,   60,    0,    0,    0,
  698.     0,    0,    0,  174,    0,   54,  174,    0,    0,   55,
  699.    60,   60,    0,    0,    0,   90,   90,    0,    0,    0,
  700.     0,  172,  172,  174,  174,    0,  174,    0,  174,    0,
  701.    59,    0,    0,   59,    0,    0,    0,   54,    0,    0,
  702.   175,   55,    0,  175,    0,   60,    0,   59,   59,    0,
  703.     0,    0,  172,  172,    0,    0,    0,    0,  174,  174,
  704.   175,  175,    0,  175,    0,  175,    0,    0,    0,    0,
  705.     0,    0,    0,    0,    0,    0,    0,   60,  176,    0,
  706.     0,  176,   59,    0,    0,   52,   52,   52,   52,  174,
  707.   174,    0,    0,    0,    0,  175,  175,    0,  176,  176,
  708.     0,  176,    0,  176,    0,    0,    0,    0,    0,    0,
  709.     0,    0,    0,    0,   59,    0,  186,    0,    0,    0,
  710.     0,    0,   91,   91,   91,   91,  175,  175,    0,    0,
  711.     0,    0,    0,  176,  176,    0,  343,    0,    0,  179,
  712.     0,  180,   52,   52,    0,    0,    0,    0,    0,    0,
  713.     0,    0,   91,   91,   91,   91,    0,    0,    0,    0,
  714.    90,   90,   90,   90,  176,  176,    0,    0,    0,   91,
  715.    91,   91,  185,   91,   91,   91,   91,    0,   91,   91,
  716.    91,   54,   54,   54,   54,   55,   55,   55,   55,    0,
  717.    90,   90,   90,   90,    0,    0,    0,  172,  172,  172,
  718.   172,    0,  184,    0,    0,    0,    0,   90,   90,   90,
  719.     0,   90,   90,   90,   90,    0,   90,   90,   90,    0,
  720.     0,   60,   60,   60,   60,    0,    0,  172,  172,  172,
  721.   172,    0,    0,    0,  174,  174,  174,  174,   54,   54,
  722.     0,    0,   55,   55,  172,  172,  172,    0,  172,  172,
  723.   172,  172,    0,  172,  172,  172,    0,    0,   59,   59,
  724.    59,   59,    0,    0,  174,  174,  174,  174,    0,    0,
  725.     0,  175,  175,  175,  175,    0,    0,    0,   60,   60,
  726.     0,  174,  174,  174,    0,  174,  174,  174,  174,    0,
  727.   174,  174,  174,    0,    0,    0,    0,    0,    0,    0,
  728.     0,  175,  175,  175,  175,    0,    0,    0,    0,  176,
  729.   176,  176,  176,    0,    0,   59,   59,    0,  175,  175,
  730.   175,    0,  175,  175,  175,  175,    0,  175,  175,  175,
  731.    75,    0,    0,   75,    0,    0,   75,    0,    0,  176,
  732.   176,  176,  176,    0,    0,    0,    0,    0,    0,    0,
  733.    75,   75,    0,   75,    0,   75,  176,  176,  176,    0,
  734.   176,  176,  176,  176,    0,  176,  176,  176,   76,    0,
  735.     0,   76,    0,    0,   76,    0,    0,  175,  176,  177,
  736.   178,    0,    0,    0,    0,   75,   75,    0,   76,   76,
  737.     0,   76,    0,   76,  181,  182,  183,    0,  187,  188,
  738.   189,  190,    0,  191,    0,   61,    0,    0,   61,    0,
  739.     0,   61,    0,    0,    0,    0,   75,   75,    0,    0,
  740.     0,    0,    0,   76,   76,   61,   61,    0,   61,    0,
  741.    61,    0,   58,    0,    0,   58,    0,    0,    0,    0,
  742.     0,    0,   62,    0,    0,   62,    0,    0,   62,   58,
  743.    58,    0,    0,    0,   76,   76,    0,    0,    0,    0,
  744.    61,   61,   62,   62,    0,   62,    0,   62,    0,    0,
  745.    56,    0,    0,   56,    0,    0,    0,    0,    0,   63,
  746.     0,    0,   63,    0,   58,   63,    0,   56,   56,    0,
  747.     0,   61,   61,    0,    0,    0,    0,   62,   62,   63,
  748.    63,    0,   63,    0,   63,    0,    0,    0,    0,    0,
  749.     0,    0,    0,    0,    0,    0,   58,   64,    0,    0,
  750.    64,    0,   56,   64,    0,    0,    0,    0,   62,   62,
  751.     0,    0,    0,    0,   63,   63,    0,   64,   64,    0,
  752.    64,    0,   64,    0,    0,    0,    0,    0,    0,    0,
  753.     0,    0,    0,    0,   56,    0,    0,    0,    0,    0,
  754.     0,   75,   75,   75,   75,   63,   63,    0,    0,    0,
  755.     0,    0,   64,   64,    0,    0,    0,    0,    0,    0,
  756.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  757.     0,   75,   75,   75,   75,    0,    0,    0,    0,   76,
  758.    76,   76,   76,   64,   64,    0,    0,    0,   75,   75,
  759.    75,    0,   75,   75,   75,   75,    0,    0,   75,   75,
  760.     0,    0,    0,    0,    0,    0,    0,    0,    0,   76,
  761.    76,   76,   76,    0,    0,    0,   61,   61,   61,   61,
  762.     0,    0,    0,    0,    0,    0,   76,   76,   76,    0,
  763.    76,   76,   76,   76,    0,    0,   76,   76,    0,    0,
  764.    58,   58,   58,   58,    0,    0,   61,   61,   61,   61,
  765.     0,    0,    0,   62,   62,   62,   62,    0,    0,    0,
  766.     0,    0,    0,   61,   61,   61,    0,   61,   61,   61,
  767.    61,  185,    0,   61,   61,    0,    0,  177,   56,   56,
  768.    56,   56,    0,   62,   62,   62,   62,    0,    0,    0,
  769.    63,   63,   63,   63,  185,    0,  185,   58,   58,    0,
  770.    62,   62,   62,    0,   62,   62,    0,    0,    0,    0,
  771.    62,   62,    0,    0,    0,    0,    0,    0,    0,    0,
  772.    63,   63,    0,   63,    0,    0,    0,  185,   64,   64,
  773.    64,   64,    0,    0,    0,   56,   56,   63,   63,   63,
  774.    65,   63,   63,   65,    0,    0,   65,   63,   63,    0,
  775.     0,    0,    0,    0,    0,    0,    0,  185,   64,   64,
  776.    65,   65,    0,   65,    0,   65,    0,    0,    0,    0,
  777.     0,    0,    0,    0,    0,   64,   64,   64,   87,   64,
  778.    64,   87,    0,    0,   87,   64,   64,    0,    0,    0,
  779.     0,    0,    0,    0,    0,   65,   65,    0,   87,   87,
  780.     0,   87,   57,   87,    0,   57,    0,    0,    0,    0,
  781.     0,    0,    0,    0,   53,  124,    0,   53,  124,   57,
  782.    57,  124,    0,    0,    0,    0,   65,   65,    0,    0,
  783.     0,   53,   53,   87,   87,  124,  124,    0,  124,    0,
  784.   124,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  785.     0,    0,   66,    0,   57,   66,    0,    0,   66,    0,
  786.     0,    0,    0,    0,   87,   87,   53,    0,    0,    0,
  787.   124,  124,   66,   66,    0,   66,    0,   66,    0,    0,
  788.     0,    0,    0,    0,    0,    0,   57,    0,    0,   67,
  789.     0,    0,   67,    0,    0,   67,    0,    0,   53,    0,
  790.     0,  124,  124,    0,    0,    0,    0,   66,   66,   67,
  791.    67,    0,   67,    0,   67,    0,    0,    0,    0,    0,
  792.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  793.     0,    0,  185,  185,  185,  185,    0,    0,   66,   66,
  794.     0,    0,    0,    0,   67,   67,    0,    0,    0,  185,
  795.   185,  185,    0,  185,  185,  185,  185,    0,  185,  185,
  796.   185,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  797.     0,   65,   65,   65,   65,   67,   67,    0,    0,    0,
  798.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  799.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  800.     0,   65,   65,    0,    0,    0,    0,    0,    0,   87,
  801.    87,   87,   87,    0,    0,    0,    0,    0,   65,   65,
  802.    65,    0,   65,   65,    0,    0,    0,    0,   65,   65,
  803.    57,   57,   57,   57,    0,    0,    0,    0,    0,   87,
  804.    87,    0,   53,   53,   53,   53,  124,  124,  124,  124,
  805.     0,    0,    0,    0,    0,    0,   87,   87,   87,    0,
  806.     0,    0,    0,    0,    0,    0,   87,   87,    0,    0,
  807.     0,    0,    0,    0,    0,    0,  124,  124,    0,    0,
  808.     0,    0,    0,   66,   66,   66,   66,   57,   57,    0,
  809.     0,    0,    0,  124,  124,  124,    0,    0,    0,   53,
  810.    53,    0,    0,  124,  124,    0,    0,    0,    0,    0,
  811.     0,    0,    0,    0,   66,    0,    0,    0,    0,    0,
  812.    67,   67,   67,   67,    0,    0,    0,    0,    0,    0,
  813.    66,   66,   66,   68,    0,    0,   68,    0,    0,   68,
  814.    66,   66,    0,    0,    0,    0,    0,    0,    0,    0,
  815.     0,    0,    0,   68,   68,    0,   68,    0,   68,    0,
  816.     0,    0,    0,    0,    0,    0,    0,   67,   67,   67,
  817.   155,    0,    0,  155,    0,    0,  155,   67,   67,    0,
  818.     0,    0,    0,    0,    0,    0,    0,    0,   68,   68,
  819.   155,  155,    0,  155,    0,  155,    0,    0,    0,    0,
  820.     0,    0,    0,    0,    0,    0,    0,   88,    0,    0,
  821.    88,    0,    0,   88,    0,    0,    0,    0,    0,   68,
  822.    68,    0,    0,    0,    0,  155,  155,   88,   88,    0,
  823.    88,    0,   88,    0,    0,    0,    0,    0,    0,    0,
  824.     0,    0,    0,    0,  171,    0,    0,  171,    0,    0,
  825.   171,    0,    0,    0,    0,    0,  155,  155,    0,    0,
  826.     0,    0,   88,   88,  171,  171,    0,  171,    0,  171,
  827.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  828.     0,    0,  122,    0,    0,  122,    0,    0,  122,    0,
  829.     0,    0,    0,   88,   88,    0,    0,    0,    0,  171,
  830.   171,    0,  122,  122,    0,  122,    0,  122,    0,    0,
  831.     0,    0,    0,    0,    0,    0,    0,    0,    0,   77,
  832.     0,    0,   77,    0,    0,   77,    0,    0,    0,    0,
  833.   171,  171,    0,    0,    0,    0,    0,  122,  122,   77,
  834.    77,    0,   77,    0,   77,    0,    0,    0,    0,    0,
  835.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  836.     0,    0,    0,    0,   68,   68,   68,   68,  122,  122,
  837.     0,    0,    0,    0,   77,   77,    0,    0,    0,    0,
  838.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  839.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  840.     0,  155,  155,  155,  155,   77,   77,    0,    0,    0,
  841.     0,   68,   68,   68,    0,    0,    0,    0,    0,    0,
  842.     0,   68,   68,    0,    0,    0,    0,    0,    0,    0,
  843.     0,  155,  155,  155,  155,    0,    0,    0,   88,   88,
  844.    88,   88,    0,    0,    0,    0,    0,    0,  155,  155,
  845.   155,    0,  155,  155,  155,  155,    0,  155,    0,    0,
  846.     0,    0,    0,    0,    0,    0,    0,    0,   88,   88,
  847.    88,   88,    0,    0,    0,  171,  171,  171,  171,    0,
  848.     0,    0,    0,    0,    0,   88,   88,   88,    0,   88,
  849.    88,   88,   88,    0,   88,    0,    0,    0,    0,    0,
  850.     0,    0,    0,    0,    0,  171,  171,  171,  171,    0,
  851.     0,    0,    0,  122,  122,  122,  122,    0,    0,    0,
  852.     0,    0,  171,  171,  171,    0,  171,  171,  171,  171,
  853.     0,  171,    0,    0,  173,    0,    0,  173,    0,    0,
  854.   173,    0,    0,  122,  122,  122,  122,    0,    0,    0,
  855.    77,   77,   77,   77,  173,  173,    0,  173,    0,  173,
  856.   122,  122,  122,    0,  122,  122,  122,  122,    0,  122,
  857.     0,   80,    0,    0,   80,    0,    0,   80,    0,    0,
  858.    77,   77,   77,   77,    0,    0,    0,    0,    0,  173,
  859.   173,   80,   80,    0,   80,    0,   80,   77,   77,   77,
  860.     0,   77,   77,   77,   77,    0,   77,    0,   81,    0,
  861.     0,   81,    0,    0,   81,    0,    0,    0,    0,    0,
  862.   173,  173,    0,    0,    0,    0,   80,   80,   81,   81,
  863.     0,   81,    0,   81,    0,    0,    0,    0,    0,    0,
  864.     0,    0,    0,    0,    0,   78,    0,    0,   78,    0,
  865.     0,   78,    0,    0,    0,    0,    0,   80,   80,    0,
  866.     0,    0,    0,   81,   81,   78,   78,    0,   78,    0,
  867.    78,    0,    0,  186,    0,    0,  306,    0,    0,  292,
  868.     0,    0,    0,   79,    0,    0,   79,    0,    0,   79,
  869.     0,    0,    0,    0,   81,   81,  179,    0,  180,    0,
  870.    78,   78,    0,   79,   79,    0,   79,    0,   79,    0,
  871.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  872.   186,    0,    0,    0,    0,    0,  292,    0,    0,  185,
  873.     0,   78,   78,    0,    0,    0,    0,    0,   79,   79,
  874.     0,    0,    0,  179,    0,  180,    0,    0,    0,    0,
  875.     0,    0,  186,    0,    0,    0,    0,    0,  290,  184,
  876.     0,    0,    0,    0,    0,  173,  173,  173,  173,   79,
  877.    79,    0,    0,    0,    0,  179,  185,  180,    0,    0,
  878.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  879.     0,    0,    0,    0,    0,  173,  173,  173,  173,    0,
  880.     0,    0,   80,   80,   80,   80,  184,    0,  185,    0,
  881.     0,    0,  173,  173,  173,    0,  173,  173,  173,  173,
  882.     0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
  883.     0,    0,   80,   80,   80,   80,    0,    0,  184,   81,
  884.    81,   81,   81,    0,    0,    0,    0,    0,    0,   80,
  885.    80,   80,    0,   80,   80,   80,   80,    0,   80,    0,
  886.     0,    0,    0,    0,    0,    0,    0,    0,    0,   81,
  887.    81,   81,   81,    0,    0,    0,   78,   78,   78,   78,
  888.     0,    0,    0,    0,    0,    0,   81,   81,   81,    0,
  889.    81,   81,   81,   81,    0,   81,    0,    0,    0,    0,
  890.     0,    0,    0,    0,    0,    0,   78,   78,   78,   78,
  891.     0,    0,    0,    0,   79,   79,   79,   79,    0,    0,
  892.     0,    0,    0,   78,   78,   78,    0,   78,   78,   78,
  893.    78,   69,   78,    0,  175,  176,  177,  178,   73,    0,
  894.     0,   76,    0,   75,   79,   79,   79,   79,    0,    0,
  895.     0,  181,  182,  183,    0,  187,  188,  189,  190,    0,
  896.   191,   79,   79,   79,    0,   79,   79,   79,   79,    0,
  897.    79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  898.     0,  175,  176,  177,  178,    0,    0,    0,    0,  148,
  899.     0,    0,    0,    0,    0,    0,    0,    0,  181,  182,
  900.   183,    0,  187,  188,  189,  190,    0,  191,    0,    0,
  901.     0,    0,    0,  175,  176,  177,  178,    0,    0,    0,
  902.     0,  147,    0,   70,   70,    0,   70,    0,    0,    0,
  903.   181,  182,  183,    0,  187,  188,  189,  190,    0,  191,
  904.    70,   70,    0,   70,   69,   70,    0,   69,    0,    0,
  905.    73,    0,    0,   73,    0,    0,    0,    0,    0,    0,
  906.     0,   69,   69,    0,   69,    0,   69,   73,   73,    0,
  907.    73,    0,   73,    0,    0,   70,   70,    0,    0,    0,
  908.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  909.     0,    0,    0,    0,    0,    0,   69,   69,    0,    0,
  910.     0,    0,   73,    0,    0,    0,   70,   70,    0,    0,
  911.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  912.     0,    0,    0,    0,    0,    0,    0,   69,   69,    0,
  913.     0,    0,    0,    0,   73,    0,    0,    0,    0,    0,
  914.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  915.     0,    0,    0,    0,    0,   22,    0,   23,   24,   25,
  916.     0,    0,   26,   27,   28,   29,   30,    0,    0,    0,
  917.     0,    0,    0,    0,   35,   36,    0,   38,   39,   40,
  918.    41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
  919.    51,   52,   53,    0,   54,   55,   56,    0,    0,    0,
  920.     0,    0,   57,    0,   58,   59,   60,   61,   62,   63,
  921.    64,   65,   66,   67,    0,    0,    0,   68,    0,    0,
  922.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  923.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  924.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  925.     0,   70,   70,   70,   70,    0,    0,    0,    0,    0,
  926.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  927.     0,    0,   69,   69,   69,   69,    0,    0,   73,   73,
  928.    73,   73,    0,    0,    0,    0,    0,    0,    0,    0,
  929.     0,    0,    0,    0,    0,    0,  154,    0,   70,   70,
  930.    70,    0,  162,    0,    0,    0,    0,    0,   70,   70,
  931.     0,    0,    0,    0,    0,    0,    0,    0,    0,   69,
  932.    69,   69,    0,    0,    0,   73,   73,    0,    0,   69,
  933.    69,    0,    0,    0,    0,   73,   73,  207,    0,  210,
  934.     0,  212,    0,  214,    0,    0,  217,    0,  221,    0,
  935.     0,    0,    0,    0,    0,    0,    0,    0,  231,    0,
  936.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  937.     0,    0,  240,    0,    0,    0,  244,  245,  246,  247,
  938.   248,  249,  250,    0,    0,    0,    0,    0,    0,    0,
  939.     0,    0,    0,    0,    0,    0,    0,    0,    0,  258,
  940.   259,  260,  261,    0,    0,    0,    0,    0,    0,    0,
  941.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  942.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  943.     0,  296,  298,    0,    0,    0,    0,    0,    0,    0,
  944.     0,    0,    0,    0,    0,    0,    0,  309,    0,    0,
  945.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  946.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  947.   328,  330,  332,    0,    0,    0,    0,    0,    0,    0,
  948.   337,    0,    0,    0,    0,  340,    0,    0,    0,    0,
  949.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  950.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  951.     0,    0,    0,    0,    0,    0,    0,    0,    0,  350,
  952.     0,    0,    0,    0,    0,    0,    0,    0,    0,  356,
  953.     0,    0,    0,    0,    0,    0,    0,    0,    0,  207,
  954.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  955.     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  956.     0,    0,    0,    0,    0,    0,    0,    0,  383,
  957. };
  958. short yycheck[] = {                                      18,
  959.     0,   61,   41,   40,   40,   44,   40,   26,  257,   40,
  960.    40,   44,   31,   32,   33,   34,  217,   40,  125,  257,
  961.   221,  257,   94,   40,   40,  257,  257,   40,   40,   44,
  962.    44,   40,   58,   33,   40,   91,   44,   44,  305,  240,
  963.    40,   44,  123,   43,   91,   45,  257,   41,   67,   68,
  964.   122,  123,  124,  125,  126,  127,   44,   29,   41,   59,
  965.   309,   44,   41,   41,   44,   59,   44,  123,   91,    0,
  966.   308,   41,   41,   59,  216,  306,  123,  301,   93,   93,
  967.    59,  257,   40,  225,  226,   41,   41,  263,   61,   59,
  968.    59,  233,  234,  235,  236,  296,  238,  298,  322,  323,
  969.   123,  325,   33,   59,   59,   93,  123,  123,  309,   40,
  970.   123,  123,   43,   93,   45,  301,  302,  125,  125,  295,
  971.    59,   41,  125,  123,   44,  125,  126,  303,   59,  330,
  972.   102,  332,  104,  105,  320,  321,  322,  323,   38,  325,
  973.   306,   41,  322,  323,   44,  325,  165,   40,  167,   41,
  974.   257,  293,   44,  301,  302,  356,  263,   41,   58,   59,
  975.    44,   61,   40,   63,   41,  307,   41,   44,   41,   44,
  976.   137,   44,  139,  315,  322,  323,   41,  325,   40,   44,
  977.   322,  323,  299,  300,  301,  302,   41,   40,  295,   44,
  978.   326,  327,  123,   93,   94,  126,  303,  257,  273,  274,
  979.   275,   40,   40,  320,  321,  322,  323,   40,  325,   40,
  980.    40,  353,   40,   38,   40,  305,   40,   40,   40,   40,
  981.   257,  257,   40,  257,  124,  125,  257,  257,  370,   40,
  982.   269,  270,  271,  272,  376,   40,  269,  270,  271,  272,
  983.    69,   70,   71,   72,  316,  317,   75,   76,  257,   40,
  984.    44,   41,  394,  123,   40,   40,  256,  257,   40,  259,
  985.   260,  261,   41,  263,  264,  265,  266,  267,  268,  269,
  986.   270,  271,  272,  309,  308,  306,  276,  277,  278,  279,
  987.   280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  988.   290,  291,  292,  293,  294,  295,  296,  297,  298,  308,
  989.   306,   44,   91,  303,  304,   41,  306,  307,  308,  309,
  990.   310,  311,  312,  313,  314,  315,   41,   44,   41,  319,
  991.    41,   59,   41,   41,   44,  256,  326,  327,  259,  260,
  992.   261,   44,   44,  264,  265,  266,  267,  268,  269,  270,
  993.   271,  272,   91,  325,   41,  276,  277,  278,  279,  280,
  994.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  995.   291,  292,  293,  294,   26,  296,  297,  298,   30,  269,
  996.   270,  271,  272,  304,   41,  306,  307,  308,  309,  310,
  997.   311,  312,  313,  314,  315,   41,   41,   41,  319,  408,
  998.    59,   41,   54,   41,   41,  326,  327,   41,   41,  299,
  999.   300,   41,   41,   41,   41,   41,   68,   41,   41,   41,
  1000.    59,   41,  299,   33,  301,  302,  316,  317,  318,   41,
  1001.    40,   12,   90,   43,   59,   45,  326,  327,   59,  390,
  1002.    92,  310,   94,  320,  321,  322,  323,   -1,  325,   59,
  1003.    -1,  224,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  232,
  1004.    -1,   -1,   -1,   -1,  116,   -1,  239,   -1,   -1,   -1,
  1005.   122,  123,  124,  125,  126,  127,   -1,   -1,  130,  131,
  1006.   132,  133,  134,   -1,  299,  300,  301,  302,  140,   -1,
  1007.    -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
  1008.    -1,   -1,   43,   -1,   45,  320,  321,  322,  323,   -1,
  1009.   325,   -1,   -1,  123,   -1,   -1,  126,   -1,   59,   -1,
  1010.    -1,   -1,  174,  175,  176,  177,  178,  179,  180,  181,
  1011.   182,  183,  184,  185,  186,  187,  188,  189,  190,  191,
  1012.    -1,  314,   -1,   -1,   -1,   -1,   -1,  320,  321,   -1,
  1013.    -1,   41,  325,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  1014.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
  1015.    -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
  1016.    -1,   -1,  123,   -1,   -1,  126,   -1,   -1,   -1,   -1,
  1017.    -1,   -1,   -1,   -1,   -1,  368,   -1,   -1,   -1,   33,
  1018.    -1,  253,  375,   93,   -1,   -1,   40,   -1,   -1,   43,
  1019.    -1,   45,   -1,  265,   -1,  267,   -1,   -1,   -1,   -1,
  1020.    -1,   -1,  274,   -1,  276,  398,  278,   -1,  280,   -1,
  1021.   282,   -1,  405,   -1,  286,  125,   -1,   -1,   -1,   -1,
  1022.   292,   -1,   -1,   -1,   -1,   -1,  256,  257,   -1,  259,
  1023.   260,  261,   -1,   -1,  264,  265,  266,  267,  268,  269,
  1024.   270,  271,  272,   -1,  316,  317,  276,  277,  278,  279,
  1025.   280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  1026.   290,  291,  292,  293,  294,   -1,  296,  297,  298,  123,
  1027.    -1,  343,  126,   -1,  304,   -1,  306,  307,  308,  309,
  1028.   310,  311,  312,  313,  314,  315,   -1,   -1,   38,  319,
  1029.    -1,   -1,   -1,   -1,   -1,  256,  326,  327,  259,  260,
  1030.   261,   38,   -1,  264,  265,  266,  267,  268,  269,  270,
  1031.   271,  272,   -1,   63,   -1,  276,  277,  278,  279,  280,
  1032.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  1033.   291,  292,  293,  294,   -1,  296,  297,  298,   -1,   -1,
  1034.    -1,   -1,   -1,  304,   94,  306,  307,  308,  309,  310,
  1035.   311,  312,  313,  314,  315,   -1,   -1,   94,  319,  269,
  1036.   270,  271,  272,   -1,   -1,  326,  327,   -1,   -1,   -1,
  1037.    -1,   -1,   -1,   33,  124,   -1,   -1,   -1,   -1,   -1,
  1038.    40,   -1,   -1,   43,   -1,   45,   -1,  124,   -1,   -1,
  1039.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1040.    -1,   -1,   -1,  257,   -1,  259,  260,  261,   -1,   -1,
  1041.   264,  265,  266,  267,  268,   -1,  326,  327,   -1,   38,
  1042.    -1,   -1,  276,  277,   -1,  279,  280,  281,  282,  283,
  1043.   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
  1044.   294,   -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,
  1045.   304,   -1,  306,  307,  308,  309,  310,  311,  312,  313,
  1046.   314,  315,   -1,  123,   33,  319,  126,   -1,   -1,   -1,
  1047.    -1,   40,  326,  327,   43,   94,   45,   -1,   -1,   -1,
  1048.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1049.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1050.    -1,   -1,   -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,
  1051.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1052.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1053.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1054.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,  299,
  1055.   300,  301,  302,   -1,  123,   40,   41,  126,   43,   -1,
  1056.    45,   -1,  299,  300,  301,  302,  316,  317,  318,   -1,
  1057.   320,  321,  322,  323,   -1,  325,   -1,   -1,   -1,   -1,
  1058.   317,  318,   -1,  320,  321,  322,  323,   -1,  325,   38,
  1059.    -1,   -1,   41,   -1,   -1,   44,   -1,  257,   -1,  259,
  1060.   260,  261,   -1,   -1,  264,  265,  266,  267,  268,   -1,
  1061.    -1,   -1,   61,   -1,   63,   -1,  276,  277,   -1,  279,
  1062.   280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  1063.   290,  291,  292,  293,  294,   -1,  296,  297,  298,   -1,
  1064.    -1,  126,   -1,   -1,  304,   94,  306,  307,  308,  309,
  1065.   310,  311,  312,  313,  314,  315,   -1,   -1,   33,  319,
  1066.    -1,   -1,   -1,   -1,   -1,   40,  326,  327,   43,   -1,
  1067.    45,   -1,   -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,
  1068.   299,  300,  301,  302,   -1,   -1,   -1,   -1,  257,   -1,
  1069.   259,  260,  261,   -1,   -1,  264,  265,  266,  267,  268,
  1070.    -1,  320,  321,  322,  323,   -1,  325,  276,  277,   -1,
  1071.   279,  280,  281,  282,  283,  284,  285,  286,  287,  288,
  1072.   289,  290,  291,  292,  293,  294,   -1,  296,  297,  298,
  1073.    -1,   -1,   -1,   -1,   -1,  304,   -1,  306,  307,  308,
  1074.   309,  310,  311,  312,  313,  314,  315,   -1,   -1,   -1,
  1075.   319,  126,   33,   -1,   -1,   -1,   -1,  326,  327,   40,
  1076.    41,   -1,   43,   -1,   45,   -1,   -1,  109,   -1,  111,
  1077.    -1,  113,  257,  115,  259,  260,  261,   -1,   -1,  264,
  1078.   265,  266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,
  1079.    -1,  276,  277,   -1,  279,  280,  281,  282,  283,  284,
  1080.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  1081.    -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,
  1082.    -1,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  1083.   315,   -1,   -1,   -1,  319,   -1,   -1,   -1,   -1,   -1,
  1084.    -1,  326,  327,   -1,   -1,  126,   -1,   -1,   33,   -1,
  1085.   299,  300,  301,  302,   -1,   40,   41,   -1,   43,   -1,
  1086.    45,   -1,   -1,   -1,   -1,   -1,   -1,  316,  317,  318,
  1087.    -1,  320,  321,  322,  323,   -1,  325,  326,  327,   -1,
  1088.    -1,  256,  257,   -1,  259,  260,  261,   -1,   -1,  264,
  1089.   265,  266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,
  1090.    -1,  276,  277,   -1,  279,  280,  281,  282,  283,  284,
  1091.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  1092.    -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,
  1093.    -1,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  1094.   315,  126,   -1,   33,  319,   -1,   -1,   -1,   -1,   -1,
  1095.    40,  326,  327,   43,   -1,   45,   -1,   -1,   -1,   -1,
  1096.   302,  303,  304,  305,   -1,   -1,   -1,   -1,   -1,  311,
  1097.    -1,   61,   -1,   -1,   -1,   -1,  257,   -1,  259,  260,
  1098.   261,   -1,   -1,  264,  265,  266,  267,  268,   -1,   -1,
  1099.    -1,   -1,   -1,   -1,   -1,  276,  277,   -1,  279,  280,
  1100.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  1101.   291,  292,  293,  294,   -1,  296,  297,  298,   -1,   -1,
  1102.    -1,  363,   -1,  304,   -1,  306,  307,  308,  309,  310,
  1103.   311,  312,  313,  314,  315,   -1,  126,   -1,  319,   -1,
  1104.    33,   -1,  384,   -1,   -1,  326,  327,   40,   -1,   -1,
  1105.    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1106.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   61,   -1,
  1107.    -1,   -1,  257,   -1,  259,  260,  261,   -1,   -1,  264,
  1108.   265,  266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,
  1109.    -1,  276,  277,   -1,  279,  280,  281,  282,  283,  284,
  1110.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  1111.    -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,
  1112.    -1,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  1113.   315,   -1,   -1,  126,  319,   -1,   -1,   33,   -1,   -1,
  1114.    -1,  326,  327,   -1,   40,   -1,   -1,   43,   -1,   45,
  1115.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1116.    -1,   -1,   -1,   -1,   -1,   61,   -1,  257,   -1,  259,
  1117.   260,  261,   -1,   -1,  264,  265,  266,  267,  268,   -1,
  1118.    -1,   -1,   -1,   -1,   -1,   -1,  276,  277,   -1,  279,
  1119.   280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  1120.   290,  291,  292,  293,  294,   -1,  296,  297,  298,   -1,
  1121.    -1,   -1,   -1,   -1,  304,   -1,  306,  307,  308,  309,
  1122.   310,  311,  312,  313,  314,  315,   -1,   -1,   -1,  319,
  1123.   126,   33,   -1,   -1,   -1,   -1,  326,  327,   40,   -1,
  1124.    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
  1125.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   61,
  1126.    -1,   -1,   -1,   -1,  257,   -1,  259,  260,  261,   -1,
  1127.    -1,  264,  265,  266,  267,  268,   -1,   -1,   -1,   -1,
  1128.    -1,   -1,   -1,  276,  277,   -1,  279,  280,  281,  282,
  1129.   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
  1130.   293,  294,   -1,  296,  297,  298,   -1,   -1,   -1,   -1,
  1131.    -1,  304,   -1,  306,  307,  308,  309,  310,  311,  312,
  1132.   313,  314,  315,   -1,  126,   -1,  319,   -1,   33,   -1,
  1133.    -1,   -1,   -1,  326,  327,   40,   -1,   -1,   43,   -1,
  1134.    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1135.    -1,   -1,   -1,   -1,   -1,   -1,   61,   -1,   -1,   -1,
  1136.    -1,  257,   -1,  259,  260,  261,   -1,   -1,  264,  265,
  1137.   266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1138.   276,  277,   -1,  279,  280,  281,  282,  283,  284,  285,
  1139.   286,  287,  288,  289,  290,  291,  292,  293,  294,   -1,
  1140.   296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,   -1,
  1141.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  1142.    -1,  126,   33,  319,   -1,   -1,   -1,   -1,   -1,   40,
  1143.   326,  327,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
  1144.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1145.    61,   -1,   -1,   -1,   -1,  257,   -1,  259,  260,  261,
  1146.    -1,   -1,  264,  265,  266,  267,  268,   -1,   -1,   -1,
  1147.    -1,   -1,   -1,   -1,  276,  277,   -1,  279,  280,  281,
  1148.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  1149.   292,  293,  294,   -1,  296,  297,  298,   -1,   -1,   -1,
  1150.    -1,   -1,  304,   -1,  306,  307,  308,  309,  310,  311,
  1151.   312,  313,  314,  315,   -1,  126,   -1,  319,   -1,   33,
  1152.    -1,   -1,   -1,   -1,  326,  327,   40,   -1,   -1,   43,
  1153.    -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1154.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   61,   -1,   -1,
  1155.    -1,   -1,  257,   -1,  259,  260,  261,   -1,   -1,  264,
  1156.   265,  266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,
  1157.    -1,  276,  277,   -1,  279,  280,  281,  282,  283,  284,
  1158.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  1159.    -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,
  1160.    -1,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  1161.   315,   -1,  126,   33,  319,   -1,   -1,   -1,   -1,   -1,
  1162.    40,  326,  327,   43,   -1,   45,   -1,   -1,   -1,   -1,
  1163.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1164.    -1,   61,   -1,   -1,   -1,   -1,  257,   -1,  259,  260,
  1165.   261,   -1,   -1,  264,  265,  266,  267,  268,   -1,   -1,
  1166.    -1,   -1,   -1,   -1,   -1,  276,  277,   -1,  279,  280,
  1167.   281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
  1168.   291,  292,  293,  294,   -1,  296,  297,  298,   -1,   -1,
  1169.    -1,   -1,   -1,  304,   -1,  306,  307,  308,  309,  310,
  1170.   311,  312,  313,  314,  315,   -1,  126,   -1,  319,   -1,
  1171.    33,   -1,   -1,   -1,   -1,  326,  327,   40,   41,   -1,
  1172.    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1173.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1174.    -1,   -1,   -1,  257,   -1,  259,  260,  261,   -1,   -1,
  1175.   264,  265,  266,  267,  268,   -1,   -1,   -1,   -1,   -1,
  1176.    -1,   -1,  276,  277,   -1,  279,  280,  281,  282,  283,
  1177.   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
  1178.   294,   -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,
  1179.   304,   -1,  306,  307,  308,  309,  310,  311,  312,  313,
  1180.   314,  315,   -1,  126,   -1,  319,   -1,   33,   -1,   -1,
  1181.    -1,   -1,  326,  327,   40,   41,   -1,   43,   -1,   45,
  1182.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1183.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,   -1,  259,
  1184.   260,  261,   -1,   -1,  264,  265,  266,  267,  268,   -1,
  1185.    -1,   -1,   -1,   -1,   -1,   -1,  276,  277,   -1,  279,
  1186.   280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
  1187.   290,  291,  292,  293,  294,   -1,  296,  297,  298,   -1,
  1188.    -1,   -1,   -1,   -1,  304,   -1,  306,  307,  308,  309,
  1189.   310,  311,  312,  313,  314,  315,   -1,   -1,   -1,  319,
  1190.   126,   33,   -1,   -1,   -1,   -1,  326,  327,   40,   41,
  1191.    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
  1192.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1193.    -1,   -1,   -1,   -1,  257,   -1,  259,  260,  261,   -1,
  1194.    -1,  264,  265,  266,  267,  268,   -1,   -1,   -1,   -1,
  1195.    -1,   -1,   -1,  276,  277,   -1,  279,  280,  281,  282,
  1196.   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
  1197.   293,  294,   -1,  296,  297,  298,   -1,   -1,   -1,   -1,
  1198.    -1,  304,   -1,  306,  307,  308,  309,  310,  311,  312,
  1199.   313,  314,  315,   -1,  126,   -1,  319,   -1,   33,   -1,
  1200.    -1,   -1,   -1,  326,  327,   40,   41,   -1,   43,   -1,
  1201.    45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1202.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1203.    -1,  257,   -1,  259,  260,  261,   -1,   -1,  264,  265,
  1204.   266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1205.   276,  277,   -1,  279,  280,  281,  282,  283,  284,  285,
  1206.   286,  287,  288,  289,  290,  291,  292,  293,  294,   -1,
  1207.   296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,   -1,
  1208.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  1209.    -1,  126,   -1,  319,   -1,   33,   -1,   -1,   -1,   -1,
  1210.   326,  327,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
  1211.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1212.    -1,   -1,   -1,   -1,   -1,  257,   -1,  259,  260,  261,
  1213.    -1,   -1,  264,  265,  266,  267,  268,   -1,   -1,   -1,
  1214.    -1,   -1,   -1,   -1,  276,  277,   -1,  279,  280,  281,
  1215.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  1216.   292,  293,  294,   -1,  296,  297,  298,   -1,   -1,   -1,
  1217.    -1,   -1,  304,   -1,  306,  307,  308,  309,  310,  311,
  1218.   312,  313,  314,  315,   -1,   -1,   -1,  319,  126,   33,
  1219.    -1,   -1,   -1,   -1,  326,  327,   40,   -1,   -1,   43,
  1220.    -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1221.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1222.    -1,   -1,  257,   -1,  259,  260,  261,   -1,   -1,  264,
  1223.   265,  266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,
  1224.    -1,  276,  277,   -1,  279,  280,  281,  282,  283,  284,
  1225.   285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
  1226.    -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,
  1227.    -1,  306,  307,  308,  309,  310,  311,  312,  313,  314,
  1228.   315,   -1,  126,   -1,  319,   -1,   33,   -1,   -1,   -1,
  1229.    -1,  326,  327,   40,   -1,   -1,   43,   -1,   45,   -1,
  1230.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1231.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
  1232.    -1,  259,  260,  261,   -1,   -1,  264,  265,  266,  267,
  1233.   268,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  276,  277,
  1234.    -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
  1235.   288,  289,  290,  291,  292,  293,  294,   -1,  296,  297,
  1236.   298,   -1,   -1,   -1,   -1,   -1,  304,   -1,  306,  307,
  1237.   308,  309,  310,  311,  312,  313,  314,  315,   -1,  126,
  1238.    33,  319,   -1,   -1,   -1,   -1,   -1,   40,  326,  327,
  1239.    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1240.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1241.    -1,   -1,   -1,  257,   -1,  259,  260,  261,   -1,   -1,
  1242.   264,  265,  266,  267,  268,   -1,   -1,   -1,   -1,   -1,
  1243.    -1,   -1,  276,  277,   -1,  279,  280,  281,  282,  283,
  1244.   284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
  1245.   294,   -1,  296,  297,  298,   -1,   -1,   -1,   -1,   -1,
  1246.   304,   -1,  306,  307,  308,  309,  310,  311,  312,  313,
  1247.   314,  315,   -1,  126,   -1,  319,   -1,   33,   -1,   -1,
  1248.    -1,   -1,  326,  327,   40,   -1,   -1,   43,   -1,   45,
  1249.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1250.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1251.   257,   -1,  259,  260,  261,   -1,   -1,  264,  265,  266,
  1252.   267,  268,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  276,
  1253.   277,   -1,  279,  280,  281,  282,  283,  284,  285,  286,
  1254.   287,  288,  289,  290,  291,  292,  293,  294,   -1,  296,
  1255.   297,  298,   -1,   -1,   -1,   -1,   -1,  304,   -1,  306,
  1256.   307,  308,  309,  310,  311,  312,  313,  314,  315,   -1,
  1257.   126,   -1,  319,   -1,   -1,   -1,   -1,   -1,   -1,  326,
  1258.   327,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1259.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1260.    -1,   -1,   -1,   -1,  257,   -1,  259,  260,  261,   -1,
  1261.    -1,  264,  265,  266,  267,  268,   38,   -1,   -1,   -1,
  1262.    -1,   -1,   -1,  276,  277,   -1,  279,  280,  281,  282,
  1263.   283,  284,  285,  286,  287,  288,  289,  290,  291,  292,
  1264.   293,  294,   -1,  296,  297,  298,   -1,   -1,   -1,   -1,
  1265.    -1,  304,   -1,  306,  307,  308,  309,  310,  311,  312,
  1266.   313,  314,  315,   -1,   -1,   -1,  319,   -1,   -1,   -1,
  1267.    -1,   -1,   94,  326,  327,   -1,   -1,   -1,   -1,   -1,
  1268.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1269.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1270.    -1,  257,  124,  259,  260,  261,   -1,   -1,  264,  265,
  1271.   266,  267,  268,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1272.   276,  277,   -1,  279,  280,  281,  282,  283,  284,  285,
  1273.   286,  287,  288,  289,  290,  291,  292,  293,  294,   -1,
  1274.   296,  297,  298,   -1,   -1,   -1,   -1,   -1,  304,   -1,
  1275.   306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
  1276.    -1,   38,   -1,  319,   41,   -1,   -1,   44,   -1,   -1,
  1277.   326,  327,   -1,   38,   -1,   -1,   41,   -1,   -1,   44,
  1278.    -1,   58,   59,   -1,   61,   -1,   63,   -1,   -1,   41,
  1279.    -1,   -1,   44,   58,   59,   -1,   61,   -1,   63,   -1,
  1280.    -1,   -1,   41,   -1,   -1,   44,   58,   59,   -1,   61,
  1281.    -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,   58,
  1282.    59,   -1,   61,   -1,   63,   -1,   -1,   -1,   93,   94,
  1283.    -1,   -1,   38,   -1,   -1,   41,   -1,   -1,   44,   -1,
  1284.    -1,   93,   -1,   -1,   -1,   -1,   -1,  124,  125,   -1,
  1285.    -1,   -1,   58,   59,   93,   61,   -1,   63,   -1,  124,
  1286.   125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   38,
  1287.    -1,   -1,   41,  125,   -1,   44,   -1,  299,  300,  301,
  1288.   302,   -1,   -1,   -1,   -1,   -1,  125,   93,   94,   58,
  1289.    59,   -1,   61,   -1,   63,   -1,  318,   -1,  320,  321,
  1290.   322,  323,   -1,  325,   -1,   -1,   -1,   -1,   -1,   -1,
  1291.    38,   -1,   -1,   41,   -1,   -1,   44,   -1,  124,  125,
  1292.    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
  1293.    58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,
  1294.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1295.    -1,   -1,   -1,   -1,   -1,  124,  125,   -1,   -1,   -1,
  1296.    -1,   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,
  1297.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1298.    -1,   -1,   -1,   -1,   -1,   -1,   38,   -1,   -1,   -1,
  1299.    -1,   -1,  269,  270,  271,  272,  124,  125,   -1,   -1,
  1300.    -1,   -1,   -1,   -1,  269,  270,  271,  272,   -1,   61,
  1301.    -1,   63,   -1,   -1,   -1,   -1,   -1,  269,  270,  271,
  1302.   272,   -1,  299,  300,  301,  302,   -1,   -1,   -1,   -1,
  1303.   269,  270,  271,  272,  299,  300,  301,  302,   -1,  316,
  1304.   317,  318,   94,  320,  321,  322,  323,   -1,  325,  326,
  1305.   327,  316,  317,  318,   -1,  320,  321,  322,  323,   -1,
  1306.   325,  326,  327,  269,  270,  271,  272,   -1,   -1,   -1,
  1307.    -1,   -1,  124,   -1,  326,  327,   -1,  316,  317,  318,
  1308.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  326,  327,   -1,
  1309.    -1,   -1,   -1,  299,  300,  301,  302,   -1,   -1,   -1,
  1310.   269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  1311.   316,  317,  318,   -1,  320,  321,  322,  323,   -1,  325,
  1312.   326,  327,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1313.   299,  300,  301,  302,   -1,   -1,   -1,   -1,   -1,   -1,
  1314.    -1,  269,  270,  271,  272,   -1,   -1,  316,  317,  318,
  1315.    -1,  320,  321,  322,  323,   -1,  325,  326,  327,   38,
  1316.    -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1317.    -1,  299,  300,  301,  302,   -1,   -1,   -1,   -1,   58,
  1318.    59,   -1,   61,   -1,   63,   -1,   -1,   -1,  316,  317,
  1319.   318,   -1,  320,  321,  322,  323,   -1,  325,  326,  327,
  1320.    38,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,
  1321.    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
  1322.    58,   59,   -1,   61,   41,   63,   -1,   44,   -1,   -1,
  1323.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   38,   -1,   -1,
  1324.    41,   58,   59,   44,   -1,  124,  125,  299,  300,  301,
  1325.   302,   -1,   -1,   -1,   -1,   93,   94,   58,   59,   -1,
  1326.    61,   -1,   63,   -1,  316,  317,  318,   -1,  320,  321,
  1327.   322,  323,   -1,  325,   38,   -1,   93,   41,   -1,   -1,
  1328.    44,   -1,   -1,   -1,   -1,   -1,  124,  125,   -1,   -1,
  1329.    -1,   -1,   93,   94,   58,   59,   -1,   61,   -1,   63,
  1330.    -1,   41,   -1,   -1,   44,   -1,   -1,   -1,  125,   -1,
  1331.    -1,   38,   -1,   -1,   41,   -1,   -1,   44,   58,   59,
  1332.    -1,   -1,   -1,  124,  125,   -1,   -1,   -1,   -1,   93,
  1333.    94,   58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,
  1334.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   38,
  1335.    -1,   -1,   41,   93,   -1,   44,   -1,   -1,   -1,   -1,
  1336.   124,  125,   -1,   -1,   -1,   -1,   93,   94,   -1,   58,
  1337.    59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,
  1338.    -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
  1339.   269,  270,  271,  272,   -1,   -1,   -1,  124,  125,   -1,
  1340.    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
  1341.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1342.   299,  300,  301,  302,   -1,   -1,   -1,   -1,   -1,   -1,
  1343.    -1,  269,  270,  271,  272,  124,  125,  316,  317,  318,
  1344.    -1,  320,  321,  322,  323,   -1,  325,  326,  327,   -1,
  1345.    -1,   -1,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
  1346.    -1,  299,  300,  301,  302,   -1,   -1,   -1,  269,  270,
  1347.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,  316,  317,
  1348.   318,   -1,  320,  321,  322,  323,   -1,  325,  326,  327,
  1349.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,
  1350.   301,  302,   -1,   -1,   -1,  269,  270,  271,  272,  326,
  1351.   327,   -1,   -1,   -1,   -1,  316,  317,  318,   -1,  320,
  1352.   321,  322,  323,   -1,  325,  326,  327,   -1,   -1,  269,
  1353.   270,  271,  272,   -1,   -1,  299,  300,  301,  302,   -1,
  1354.    -1,   -1,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
  1355.    -1,   -1,  316,  317,  318,   -1,  320,  321,  322,  323,
  1356.    -1,  325,  326,  327,   -1,   -1,   -1,   41,   -1,   -1,
  1357.    44,   -1,  299,  300,  301,  302,   -1,   -1,   -1,   -1,
  1358.   269,  270,  271,  272,   58,   59,  326,  327,   -1,  316,
  1359.   317,  318,   -1,  320,  321,  322,  323,   -1,  325,  326,
  1360.   327,   38,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,
  1361.   299,  300,  301,  302,   -1,   -1,   -1,   -1,   -1,   93,
  1362.    -1,   58,   59,   -1,   61,   -1,   63,  316,  317,  318,
  1363.    -1,  320,  321,  322,  323,   -1,  325,  326,  327,   38,
  1364.    -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1365.    -1,  125,   -1,   -1,   -1,   -1,   93,   94,   -1,   58,
  1366.    59,   -1,   61,   41,   63,   -1,   44,   41,   -1,   -1,
  1367.    44,   -1,   -1,   -1,   -1,   -1,   38,   -1,   -1,   41,
  1368.    58,   59,   -1,   -1,   58,   59,   -1,  124,  125,   -1,
  1369.    -1,   -1,   -1,   -1,   93,   94,   58,   59,   -1,   61,
  1370.    -1,   63,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,
  1371.    -1,   -1,   -1,   38,   -1,   93,   41,   -1,   -1,   93,
  1372.    58,   59,   -1,   -1,   -1,  124,  125,   -1,   -1,   -1,
  1373.    -1,   93,   94,   58,   59,   -1,   61,   -1,   63,   -1,
  1374.    41,   -1,   -1,   44,   -1,   -1,   -1,  125,   -1,   -1,
  1375.    38,  125,   -1,   41,   -1,   93,   -1,   58,   59,   -1,
  1376.    -1,   -1,  124,  125,   -1,   -1,   -1,   -1,   93,   94,
  1377.    58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,
  1378.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   38,   -1,
  1379.    -1,   41,   93,   -1,   -1,  269,  270,  271,  272,  124,
  1380.   125,   -1,   -1,   -1,   -1,   93,   94,   -1,   58,   59,
  1381.    -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
  1382.    -1,   -1,   -1,   -1,  125,   -1,   38,   -1,   -1,   -1,
  1383.    -1,   -1,  269,  270,  271,  272,  124,  125,   -1,   -1,
  1384.    -1,   -1,   -1,   93,   94,   -1,   58,   -1,   -1,   61,
  1385.    -1,   63,  326,  327,   -1,   -1,   -1,   -1,   -1,   -1,
  1386.    -1,   -1,  299,  300,  301,  302,   -1,   -1,   -1,   -1,
  1387.   269,  270,  271,  272,  124,  125,   -1,   -1,   -1,  316,
  1388.   317,  318,   94,  320,  321,  322,  323,   -1,  325,  326,
  1389.   327,  269,  270,  271,  272,  269,  270,  271,  272,   -1,
  1390.   299,  300,  301,  302,   -1,   -1,   -1,  269,  270,  271,
  1391.   272,   -1,  124,   -1,   -1,   -1,   -1,  316,  317,  318,
  1392.    -1,  320,  321,  322,  323,   -1,  325,  326,  327,   -1,
  1393.    -1,  269,  270,  271,  272,   -1,   -1,  299,  300,  301,
  1394.   302,   -1,   -1,   -1,  269,  270,  271,  272,  326,  327,
  1395.    -1,   -1,  326,  327,  316,  317,  318,   -1,  320,  321,
  1396.   322,  323,   -1,  325,  326,  327,   -1,   -1,  269,  270,
  1397.   271,  272,   -1,   -1,  299,  300,  301,  302,   -1,   -1,
  1398.    -1,  269,  270,  271,  272,   -1,   -1,   -1,  326,  327,
  1399.    -1,  316,  317,  318,   -1,  320,  321,  322,  323,   -1,
  1400.   325,  326,  327,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1401.    -1,  299,  300,  301,  302,   -1,   -1,   -1,   -1,  269,
  1402.   270,  271,  272,   -1,   -1,  326,  327,   -1,  316,  317,
  1403.   318,   -1,  320,  321,  322,  323,   -1,  325,  326,  327,
  1404.    38,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,  299,
  1405.   300,  301,  302,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1406.    58,   59,   -1,   61,   -1,   63,  316,  317,  318,   -1,
  1407.   320,  321,  322,  323,   -1,  325,  326,  327,   38,   -1,
  1408.    -1,   41,   -1,   -1,   44,   -1,   -1,  299,  300,  301,
  1409.   302,   -1,   -1,   -1,   -1,   93,   94,   -1,   58,   59,
  1410.    -1,   61,   -1,   63,  316,  317,  318,   -1,  320,  321,
  1411.   322,  323,   -1,  325,   -1,   38,   -1,   -1,   41,   -1,
  1412.    -1,   44,   -1,   -1,   -1,   -1,  124,  125,   -1,   -1,
  1413.    -1,   -1,   -1,   93,   94,   58,   59,   -1,   61,   -1,
  1414.    63,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1415.    -1,   -1,   38,   -1,   -1,   41,   -1,   -1,   44,   58,
  1416.    59,   -1,   -1,   -1,  124,  125,   -1,   -1,   -1,   -1,
  1417.    93,   94,   58,   59,   -1,   61,   -1,   63,   -1,   -1,
  1418.    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   38,
  1419.    -1,   -1,   41,   -1,   93,   44,   -1,   58,   59,   -1,
  1420.    -1,  124,  125,   -1,   -1,   -1,   -1,   93,   94,   58,
  1421.    59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,
  1422.    -1,   -1,   -1,   -1,   -1,   -1,  125,   38,   -1,   -1,
  1423.    41,   -1,   93,   44,   -1,   -1,   -1,   -1,  124,  125,
  1424.    -1,   -1,   -1,   -1,   93,   94,   -1,   58,   59,   -1,
  1425.    61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1426.    -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  1427.    -1,  269,  270,  271,  272,  124,  125,   -1,   -1,   -1,
  1428.    -1,   -1,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,
  1429.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1430.    -1,  299,  300,  301,  302,   -1,   -1,   -1,   -1,  269,
  1431.   270,  271,  272,  124,  125,   -1,   -1,   -1,  316,  317,
  1432.   318,   -1,  320,  321,  322,  323,   -1,   -1,  326,  327,
  1433.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  299,
  1434.   300,  301,  302,   -1,   -1,   -1,  269,  270,  271,  272,
  1435.    -1,   -1,   -1,   -1,   -1,   -1,  316,  317,  318,   -1,
  1436.   320,  321,  322,  323,   -1,   -1,  326,  327,   -1,   -1,
  1437.   269,  270,  271,  272,   -1,   -1,  299,  300,  301,  302,
  1438.    -1,   -1,   -1,  269,  270,  271,  272,   -1,   -1,   -1,
  1439.    -1,   -1,   -1,  316,  317,  318,   -1,  320,  321,  322,
  1440.   323,   38,   -1,  326,  327,   -1,   -1,   44,  269,  270,
  1441.   271,  272,   -1,  299,  300,  301,  302,   -1,   -1,   -1,
  1442.   269,  270,  271,  272,   61,   -1,   63,  326,  327,   -1,
  1443.   316,  317,  318,   -1,  320,  321,   -1,   -1,   -1,   -1,
  1444.   326,  327,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1445.   299,  300,   -1,  302,   -1,   -1,   -1,   94,  269,  270,
  1446.   271,  272,   -1,   -1,   -1,  326,  327,  316,  317,  318,
  1447.    38,  320,  321,   41,   -1,   -1,   44,  326,  327,   -1,
  1448.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,  299,  300,
  1449.    58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,
  1450.    -1,   -1,   -1,   -1,   -1,  316,  317,  318,   38,  320,
  1451.   321,   41,   -1,   -1,   44,  326,  327,   -1,   -1,   -1,
  1452.    -1,   -1,   -1,   -1,   -1,   93,   94,   -1,   58,   59,
  1453.    -1,   61,   41,   63,   -1,   44,   -1,   -1,   -1,   -1,
  1454.    -1,   -1,   -1,   -1,   41,   38,   -1,   44,   41,   58,
  1455.    59,   44,   -1,   -1,   -1,   -1,  124,  125,   -1,   -1,
  1456.    -1,   58,   59,   93,   94,   58,   59,   -1,   61,   -1,
  1457.    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1458.    -1,   -1,   38,   -1,   93,   41,   -1,   -1,   44,   -1,
  1459.    -1,   -1,   -1,   -1,  124,  125,   93,   -1,   -1,   -1,
  1460.    93,   94,   58,   59,   -1,   61,   -1,   63,   -1,   -1,
  1461.    -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   38,
  1462.    -1,   -1,   41,   -1,   -1,   44,   -1,   -1,  125,   -1,
  1463.    -1,  124,  125,   -1,   -1,   -1,   -1,   93,   94,   58,
  1464.    59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,
  1465.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1466.    -1,   -1,  299,  300,  301,  302,   -1,   -1,  124,  125,
  1467.    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,  316,
  1468.   317,  318,   -1,  320,  321,  322,  323,   -1,  325,  326,
  1469.   327,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1470.    -1,  269,  270,  271,  272,  124,  125,   -1,   -1,   -1,
  1471.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1472.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1473.    -1,  299,  300,   -1,   -1,   -1,   -1,   -1,   -1,  269,
  1474.   270,  271,  272,   -1,   -1,   -1,   -1,   -1,  316,  317,
  1475.   318,   -1,  320,  321,   -1,   -1,   -1,   -1,  326,  327,
  1476.   269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,  299,
  1477.   300,   -1,  269,  270,  271,  272,  269,  270,  271,  272,
  1478.    -1,   -1,   -1,   -1,   -1,   -1,  316,  317,  318,   -1,
  1479.    -1,   -1,   -1,   -1,   -1,   -1,  326,  327,   -1,   -1,
  1480.    -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,   -1,
  1481.    -1,   -1,   -1,  269,  270,  271,  272,  326,  327,   -1,
  1482.    -1,   -1,   -1,  316,  317,  318,   -1,   -1,   -1,  326,
  1483.   327,   -1,   -1,  326,  327,   -1,   -1,   -1,   -1,   -1,
  1484.    -1,   -1,   -1,   -1,  300,   -1,   -1,   -1,   -1,   -1,
  1485.   269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
  1486.   316,  317,  318,   38,   -1,   -1,   41,   -1,   -1,   44,
  1487.   326,  327,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1488.    -1,   -1,   -1,   58,   59,   -1,   61,   -1,   63,   -1,
  1489.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,  317,  318,
  1490.    38,   -1,   -1,   41,   -1,   -1,   44,  326,  327,   -1,
  1491.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,
  1492.    58,   59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,
  1493.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   38,   -1,   -1,
  1494.    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,  124,
  1495.   125,   -1,   -1,   -1,   -1,   93,   94,   58,   59,   -1,
  1496.    61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1497.    -1,   -1,   -1,   -1,   38,   -1,   -1,   41,   -1,   -1,
  1498.    44,   -1,   -1,   -1,   -1,   -1,  124,  125,   -1,   -1,
  1499.    -1,   -1,   93,   94,   58,   59,   -1,   61,   -1,   63,
  1500.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1501.    -1,   -1,   38,   -1,   -1,   41,   -1,   -1,   44,   -1,
  1502.    -1,   -1,   -1,  124,  125,   -1,   -1,   -1,   -1,   93,
  1503.    94,   -1,   58,   59,   -1,   61,   -1,   63,   -1,   -1,
  1504.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   38,
  1505.    -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
  1506.   124,  125,   -1,   -1,   -1,   -1,   -1,   93,   94,   58,
  1507.    59,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,
  1508.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1509.    -1,   -1,   -1,   -1,  269,  270,  271,  272,  124,  125,
  1510.    -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
  1511.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1512.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1513.    -1,  269,  270,  271,  272,  124,  125,   -1,   -1,   -1,
  1514.    -1,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,   -1,
  1515.    -1,  326,  327,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1516.    -1,  299,  300,  301,  302,   -1,   -1,   -1,  269,  270,
  1517.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,  316,  317,
  1518.   318,   -1,  320,  321,  322,  323,   -1,  325,   -1,   -1,
  1519.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,
  1520.   301,  302,   -1,   -1,   -1,  269,  270,  271,  272,   -1,
  1521.    -1,   -1,   -1,   -1,   -1,  316,  317,  318,   -1,  320,
  1522.   321,  322,  323,   -1,  325,   -1,   -1,   -1,   -1,   -1,
  1523.    -1,   -1,   -1,   -1,   -1,  299,  300,  301,  302,   -1,
  1524.    -1,   -1,   -1,  269,  270,  271,  272,   -1,   -1,   -1,
  1525.    -1,   -1,  316,  317,  318,   -1,  320,  321,  322,  323,
  1526.    -1,  325,   -1,   -1,   38,   -1,   -1,   41,   -1,   -1,
  1527.    44,   -1,   -1,  299,  300,  301,  302,   -1,   -1,   -1,
  1528.   269,  270,  271,  272,   58,   59,   -1,   61,   -1,   63,
  1529.   316,  317,  318,   -1,  320,  321,  322,  323,   -1,  325,
  1530.    -1,   38,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,
  1531.   299,  300,  301,  302,   -1,   -1,   -1,   -1,   -1,   93,
  1532.    94,   58,   59,   -1,   61,   -1,   63,  316,  317,  318,
  1533.    -1,  320,  321,  322,  323,   -1,  325,   -1,   38,   -1,
  1534.    -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
  1535.   124,  125,   -1,   -1,   -1,   -1,   93,   94,   58,   59,
  1536.    -1,   61,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
  1537.    -1,   -1,   -1,   -1,   -1,   38,   -1,   -1,   41,   -1,
  1538.    -1,   44,   -1,   -1,   -1,   -1,   -1,  124,  125,   -1,
  1539.    -1,   -1,   -1,   93,   94,   58,   59,   -1,   61,   -1,
  1540.    63,   -1,   -1,   38,   -1,   -1,   41,   -1,   -1,   44,
  1541.    -1,   -1,   -1,   38,   -1,   -1,   41,   -1,   -1,   44,
  1542.    -1,   -1,   -1,   -1,  124,  125,   61,   -1,   63,   -1,
  1543.    93,   94,   -1,   58,   59,   -1,   61,   -1,   63,   -1,
  1544.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1545.    38,   -1,   -1,   -1,   -1,   -1,   44,   -1,   -1,   94,
  1546.    -1,  124,  125,   -1,   -1,   -1,   -1,   -1,   93,   94,
  1547.    -1,   -1,   -1,   61,   -1,   63,   -1,   -1,   -1,   -1,
  1548.    -1,   -1,   38,   -1,   -1,   -1,   -1,   -1,   44,  124,
  1549.    -1,   -1,   -1,   -1,   -1,  269,  270,  271,  272,  124,
  1550.   125,   -1,   -1,   -1,   -1,   61,   94,   63,   -1,   -1,
  1551.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1552.    -1,   -1,   -1,   -1,   -1,  299,  300,  301,  302,   -1,
  1553.    -1,   -1,  269,  270,  271,  272,  124,   -1,   94,   -1,
  1554.    -1,   -1,  316,  317,  318,   -1,  320,  321,  322,  323,
  1555.    -1,  325,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1556.    -1,   -1,  299,  300,  301,  302,   -1,   -1,  124,  269,
  1557.   270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,  316,
  1558.   317,  318,   -1,  320,  321,  322,  323,   -1,  325,   -1,
  1559.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  299,
  1560.   300,  301,  302,   -1,   -1,   -1,  269,  270,  271,  272,
  1561.    -1,   -1,   -1,   -1,   -1,   -1,  316,  317,  318,   -1,
  1562.   320,  321,  322,  323,   -1,  325,   -1,   -1,   -1,   -1,
  1563.    -1,   -1,   -1,   -1,   -1,   -1,  299,  300,  301,  302,
  1564.    -1,   -1,   -1,   -1,  269,  270,  271,  272,   -1,   -1,
  1565.    -1,   -1,   -1,  316,  317,  318,   -1,  320,  321,  322,
  1566.   323,   33,  325,   -1,  299,  300,  301,  302,   40,   -1,
  1567.    -1,   43,   -1,   45,  299,  300,  301,  302,   -1,   -1,
  1568.    -1,  316,  317,  318,   -1,  320,  321,  322,  323,   -1,
  1569.   325,  316,  317,  318,   -1,  320,  321,  322,  323,   -1,
  1570.   325,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1571.    -1,  299,  300,  301,  302,   -1,   -1,   -1,   -1,   91,
  1572.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,  317,
  1573.   318,   -1,  320,  321,  322,  323,   -1,  325,   -1,   -1,
  1574.    -1,   -1,   -1,  299,  300,  301,  302,   -1,   -1,   -1,
  1575.    -1,  123,   -1,   41,  126,   -1,   44,   -1,   -1,   -1,
  1576.   316,  317,  318,   -1,  320,  321,  322,  323,   -1,  325,
  1577.    58,   59,   -1,   61,   41,   63,   -1,   44,   -1,   -1,
  1578.    41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
  1579.    -1,   58,   59,   -1,   61,   -1,   63,   58,   59,   -1,
  1580.    61,   -1,   63,   -1,   -1,   93,   94,   -1,   -1,   -1,
  1581.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1582.    -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,
  1583.    -1,   -1,   93,   -1,   -1,   -1,  124,  125,   -1,   -1,
  1584.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1585.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  124,  125,   -1,
  1586.    -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
  1587.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1588.    -1,   -1,   -1,   -1,   -1,  257,   -1,  259,  260,  261,
  1589.    -1,   -1,  264,  265,  266,  267,  268,   -1,   -1,   -1,
  1590.    -1,   -1,   -1,   -1,  276,  277,   -1,  279,  280,  281,
  1591.   282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
  1592.   292,  293,  294,   -1,  296,  297,  298,   -1,   -1,   -1,
  1593.    -1,   -1,  304,   -1,  306,  307,  308,  309,  310,  311,
  1594.   312,  313,  314,  315,   -1,   -1,   -1,  319,   -1,   -1,
  1595.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1596.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1597.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1598.    -1,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
  1599.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1600.    -1,   -1,  269,  270,  271,  272,   -1,   -1,  269,  270,
  1601.   271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1602.    -1,   -1,   -1,   -1,   -1,   -1,   67,   -1,  316,  317,
  1603.   318,   -1,   73,   -1,   -1,   -1,   -1,   -1,  326,  327,
  1604.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,
  1605.   317,  318,   -1,   -1,   -1,  316,  317,   -1,   -1,  326,
  1606.   327,   -1,   -1,   -1,   -1,  326,  327,  108,   -1,  110,
  1607.    -1,  112,   -1,  114,   -1,   -1,  117,   -1,  119,   -1,
  1608.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  129,   -1,
  1609.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1610.    -1,   -1,  143,   -1,   -1,   -1,  147,  148,  149,  150,
  1611.   151,  152,  153,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1612.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  170,
  1613.   171,  172,  173,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1614.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1615.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1616.    -1,  202,  203,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1617.    -1,   -1,   -1,   -1,   -1,   -1,   -1,  218,   -1,   -1,
  1618.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1619.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1620.   241,  242,  243,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1621.   251,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,   -1,
  1622.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1623.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1624.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  290,
  1625.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  300,
  1626.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  310,
  1627.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1628.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
  1629.    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  339,
  1630. };
  1631. #define YYFINAL 1
  1632. #ifndef YYDEBUG
  1633. #define YYDEBUG 0
  1634. #endif
  1635. #define YYMAXTOKEN 327
  1636. #if YYDEBUG
  1637. char *yyname[] = {
  1638. "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1639. "'!'",0,0,0,0,"'&'",0,"'('","')'",0,"'+'","','","'-'",0,0,0,0,0,0,0,0,0,0,0,0,
  1640. "':'","';'",0,"'='",0,"'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1641. 0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1642. "'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1643. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1644. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  1645. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","APPEND","OPEN","SSELECT",
  1646. "LOOPEX","USING","FORMAT","DO","SHIFT","PUSH","POP","LVALFUN","WHILE","UNTIL",
  1647. "IF","UNLESS","ELSE","ELSIF","CONTINUE","SPLIT","FLIST","FOR","FILOP","FILOP2",
  1648. "FILOP3","FILOP4","FILOP22","FILOP25","FUNC0","FUNC1","FUNC2","FUNC2x","FUNC3",
  1649. "FUNC4","FUNC5","HSHFUN","HSHFUN3","FLIST2","SUB","FILETEST","LOCAL","DELETE",
  1650. "RELOP","EQOP","MULOP","ADDOP","PACKAGE","AMPER","FORMLIST","REG","ARYLEN",
  1651. "ARY","HSH","STAR","SUBST","PATTERN","RSTRING","TRANS","LISTOP","DOTDOT","OROR",
  1652. "ANDAND","UNIOP","LS","RS","MATCH","NMATCH","UMINUS","POW","INC","DEC",
  1653. };
  1654. char *yyrule[] = {
  1655. "$accept : prog",
  1656. "$$1 :",
  1657. "prog : $$1 lineseq",
  1658. "compblock : block CONTINUE block",
  1659. "compblock : block else",
  1660. "else :",
  1661. "else : ELSE block",
  1662. "else : ELSIF '(' expr ')' compblock",
  1663. "block : '{' remember lineseq '}'",
  1664. "remember :",
  1665. "lineseq :",
  1666. "lineseq : lineseq line",
  1667. "line : decl",
  1668. "line : label cond",
  1669. "line : loop",
  1670. "line : label ';'",
  1671. "line : label sideff ';'",
  1672. "sideff : error",
  1673. "sideff : expr",
  1674. "sideff : expr IF expr",
  1675. "sideff : expr UNLESS expr",
  1676. "sideff : expr WHILE expr",
  1677. "sideff : expr UNTIL expr",
  1678. "cond : IF '(' expr ')' compblock",
  1679. "cond : UNLESS '(' expr ')' compblock",
  1680. "cond : IF block compblock",
  1681. "cond : UNLESS block compblock",
  1682. "loop : label WHILE '(' texpr ')' compblock",
  1683. "loop : label UNTIL '(' expr ')' compblock",
  1684. "loop : label WHILE block compblock",
  1685. "loop : label UNTIL block compblock",
  1686. "loop : label FOR REG '(' expr crp compblock",
  1687. "loop : label FOR '(' expr crp compblock",
  1688. "loop : label FOR '(' nexpr ';' texpr ';' nexpr ')' block",
  1689. "loop : label compblock",
  1690. "nexpr :",
  1691. "nexpr : sideff",
  1692. "texpr :",
  1693. "texpr : expr",
  1694. "label :",
  1695. "label : WORD ':'",
  1696. "decl : format",
  1697. "decl : subrout",
  1698. "decl : package",
  1699. "format : FORMAT WORD '=' FORMLIST",
  1700. "format : FORMAT '=' FORMLIST",
  1701. "subrout : SUB WORD block",
  1702. "package : PACKAGE WORD ';'",
  1703. "cexpr : ',' expr",
  1704. "expr : expr ',' sexpr",
  1705. "expr : sexpr",
  1706. "csexpr : ',' sexpr",
  1707. "sexpr : sexpr '=' sexpr",
  1708. "sexpr : sexpr POW '=' sexpr",
  1709. "sexpr : sexpr MULOP '=' sexpr",
  1710. "sexpr : sexpr ADDOP '=' sexpr",
  1711. "sexpr : sexpr LS '=' sexpr",
  1712. "sexpr : sexpr RS '=' sexpr",
  1713. "sexpr : sexpr '&' '=' sexpr",
  1714. "sexpr : sexpr '^' '=' sexpr",
  1715. "sexpr : sexpr '|' '=' sexpr",
  1716. "sexpr : sexpr POW sexpr",
  1717. "sexpr : sexpr MULOP sexpr",
  1718. "sexpr : sexpr ADDOP sexpr",
  1719. "sexpr : sexpr LS sexpr",
  1720. "sexpr : sexpr RS sexpr",
  1721. "sexpr : sexpr RELOP sexpr",
  1722. "sexpr : sexpr EQOP sexpr",
  1723. "sexpr : sexpr '&' sexpr",
  1724. "sexpr : sexpr '^' sexpr",
  1725. "sexpr : sexpr '|' sexpr",
  1726. "sexpr : sexpr DOTDOT sexpr",
  1727. "sexpr : sexpr ANDAND sexpr",
  1728. "sexpr : sexpr OROR sexpr",
  1729. "sexpr : sexpr '?' sexpr ':' sexpr",
  1730. "sexpr : sexpr MATCH sexpr",
  1731. "sexpr : sexpr NMATCH sexpr",
  1732. "sexpr : term",
  1733. "term : '-' term",
  1734. "term : '+' term",
  1735. "term : '!' term",
  1736. "term : '~' term",
  1737. "term : term INC",
  1738. "term : term DEC",
  1739. "term : INC term",
  1740. "term : DEC term",
  1741. "term : FILETEST WORD",
  1742. "term : FILETEST sexpr",
  1743. "term : FILETEST",
  1744. "term : LOCAL '(' expr crp",
  1745. "term : '(' expr crp",
  1746. "term : '(' ')'",
  1747. "term : DO sexpr",
  1748. "term : DO block",
  1749. "term : REG",
  1750. "term : STAR",
  1751. "term : REG '[' expr ']'",
  1752. "term : HSH",
  1753. "term : ARY",
  1754. "term : REG '{' expr '}'",
  1755. "term : '(' expr crp '[' expr ']'",
  1756. "term : '(' ')' '[' expr ']'",
  1757. "term : ARY '[' expr ']'",
  1758. "term : ARY '{' expr '}'",
  1759. "term : DELETE REG '{' expr '}'",
  1760. "term : ARYLEN",
  1761. "term : RSTRING",
  1762. "term : PATTERN",
  1763. "term : SUBST",
  1764. "term : TRANS",
  1765. "term : DO WORD '(' expr crp",
  1766. "term : AMPER WORD '(' expr crp",
  1767. "term : DO WORD '(' ')'",
  1768. "term : AMPER WORD '(' ')'",
  1769. "term : AMPER WORD",
  1770. "term : DO REG '(' expr crp",
  1771. "term : AMPER REG '(' expr crp",
  1772. "term : DO REG '(' ')'",
  1773. "term : AMPER REG '(' ')'",
  1774. "term : AMPER REG",
  1775. "term : LOOPEX",
  1776. "term : LOOPEX WORD",
  1777. "term : UNIOP",
  1778. "term : UNIOP block",
  1779. "term : UNIOP sexpr",
  1780. "term : SSELECT",
  1781. "term : SSELECT WORD",
  1782. "term : SSELECT '(' handle ')'",
  1783. "term : SSELECT '(' sexpr csexpr csexpr csexpr ')'",
  1784. "term : OPEN WORD",
  1785. "term : OPEN '(' WORD ')'",
  1786. "term : OPEN '(' handle cexpr ')'",
  1787. "term : FILOP '(' handle ')'",
  1788. "term : FILOP WORD",
  1789. "term : FILOP REG",
  1790. "term : FILOP '(' ')'",
  1791. "term : FILOP",
  1792. "term : FILOP2 '(' handle cexpr ')'",
  1793. "term : FILOP3 '(' handle csexpr cexpr ')'",
  1794. "term : FILOP22 '(' handle ',' handle ')'",
  1795. "term : FILOP4 '(' handle csexpr csexpr cexpr ')'",
  1796. "term : FILOP25 '(' handle ',' handle csexpr csexpr cexpr ')'",
  1797. "term : PUSH '(' aryword ',' expr crp",
  1798. "term : POP aryword",
  1799. "term : POP '(' aryword ')'",
  1800. "term : SHIFT aryword",
  1801. "term : SHIFT '(' aryword ')'",
  1802. "term : SHIFT",
  1803. "term : SPLIT",
  1804. "term : SPLIT '(' sexpr csexpr csexpr ')'",
  1805. "term : SPLIT '(' sexpr csexpr ')'",
  1806. "term : SPLIT '(' sexpr ')'",
  1807. "term : FLIST2 '(' sexpr cexpr ')'",
  1808. "term : FLIST '(' expr crp",
  1809. "term : LVALFUN sexpr",
  1810. "term : LVALFUN",
  1811. "term : FUNC0",
  1812. "term : FUNC0 '(' ')'",
  1813. "term : FUNC1 '(' ')'",
  1814. "term : FUNC1 '(' expr ')'",
  1815. "term : FUNC2 '(' sexpr cexpr ')'",
  1816. "term : FUNC2x '(' sexpr csexpr ')'",
  1817. "term : FUNC2x '(' sexpr csexpr cexpr ')'",
  1818. "term : FUNC3 '(' sexpr csexpr cexpr ')'",
  1819. "term : FUNC4 '(' sexpr csexpr csexpr cexpr ')'",
  1820. "term : FUNC5 '(' sexpr csexpr csexpr csexpr cexpr ')'",
  1821. "term : HSHFUN '(' hshword ')'",
  1822. "term : HSHFUN hshword",
  1823. "term : HSHFUN3 '(' hshword csexpr cexpr ')'",
  1824. "term : bareword",
  1825. "term : listop",
  1826. "listop : LISTOP",
  1827. "listop : LISTOP expr",
  1828. "listop : LISTOP WORD",
  1829. "listop : LISTOP WORD expr",
  1830. "listop : LISTOP REG expr",
  1831. "listop : LISTOP block expr",
  1832. "handle : WORD",
  1833. "handle : sexpr",
  1834. "aryword : WORD",
  1835. "aryword : ARY",
  1836. "hshword : WORD",
  1837. "hshword : HSH",
  1838. "crp : ',' ')'",
  1839. "crp : ')'",
  1840. "bareword : WORD",
  1841. };
  1842. #endif
  1843. #define yyclearin (yychar=(-1))
  1844. #define yyerrok (yyerrflag=0)
  1845. #ifdef YYSTACKSIZE
  1846. #ifndef YYMAXDEPTH
  1847. #define YYMAXDEPTH YYSTACKSIZE
  1848. #endif
  1849. #else
  1850. #ifdef YYMAXDEPTH
  1851. #define YYSTACKSIZE YYMAXDEPTH
  1852. #else
  1853. #define YYSTACKSIZE 500
  1854. #define YYMAXDEPTH 500
  1855. #endif
  1856. #endif
  1857. int yydebug;
  1858. int yynerrs;
  1859. int yyerrflag;
  1860. int yychar;
  1861. short *yyssp;
  1862. YYSTYPE *yyvsp;
  1863. YYSTYPE yyval;
  1864. YYSTYPE yylval;
  1865. short yyss[YYSTACKSIZE];
  1866. YYSTYPE yyvs[YYSTACKSIZE];
  1867. #define yystacksize YYSTACKSIZE
  1868. #line 828 ":perly.y"
  1869.  /* PROGRAM */
  1870. #line 1871 "y.tab.c"
  1871. #define YYABORT goto yyabort
  1872. #define YYACCEPT goto yyaccept
  1873. #define YYERROR goto yyerrlab
  1874. int
  1875. yyparse()
  1876. {
  1877.     register int yym, yyn, yystate;
  1878. #if YYDEBUG
  1879.     register char *yys;
  1880.     extern char *getenv();
  1881.  
  1882.     if (yys = getenv("YYDEBUG"))
  1883.     {
  1884.         yyn = *yys;
  1885.         if (yyn >= '0' && yyn <= '9')
  1886.             yydebug = yyn - '0';
  1887.     }
  1888. #endif
  1889.  
  1890.     yynerrs = 0;
  1891.     yyerrflag = 0;
  1892.     yychar = (-1);
  1893.  
  1894.     yyssp = yyss;
  1895.     yyvsp = yyvs;
  1896.     *yyssp = yystate = 0;
  1897.  
  1898. yyloop:
  1899.     if (yyn = yydefred[yystate]) goto yyreduce;
  1900.     if (yychar < 0)
  1901.     {
  1902.         if ((yychar = yylex()) < 0) yychar = 0;
  1903. #if YYDEBUG
  1904.         if (yydebug)
  1905.         {
  1906.             yys = 0;
  1907.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1908.             if (!yys) yys = "illegal-symbol";
  1909.             printf("yydebug: state %d, reading %d (%s)\n", yystate,
  1910.                     yychar, yys);
  1911.         }
  1912. #endif
  1913.     }
  1914.     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
  1915.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  1916.     {
  1917. #if YYDEBUG
  1918.         if (yydebug)
  1919.             printf("yydebug: state %d, shifting to state %d\n",
  1920.                     yystate, yytable[yyn]);
  1921. #endif
  1922.         if (yyssp >= yyss + yystacksize - 1)
  1923.         {
  1924.             goto yyoverflow;
  1925.         }
  1926.         *++yyssp = yystate = yytable[yyn];
  1927.         *++yyvsp = yylval;
  1928.         yychar = (-1);
  1929.         if (yyerrflag > 0)  --yyerrflag;
  1930.         goto yyloop;
  1931.     }
  1932.     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
  1933.             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
  1934.     {
  1935.         yyn = yytable[yyn];
  1936.         goto yyreduce;
  1937.     }
  1938.     if (yyerrflag) goto yyinrecovery;
  1939. #ifdef lint
  1940.     goto yynewerror;
  1941. #endif
  1942. yynewerror:
  1943.     yyerror("syntax error");
  1944. #ifdef lint
  1945.     goto yyerrlab;
  1946. #endif
  1947. yyerrlab:
  1948.     ++yynerrs;
  1949. yyinrecovery:
  1950.     if (yyerrflag < 3)
  1951.     {
  1952.         yyerrflag = 3;
  1953.         for (;;)
  1954.         {
  1955.             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
  1956.                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
  1957.             {
  1958. #if YYDEBUG
  1959.                 if (yydebug)
  1960.                     printf("yydebug: state %d, error recovery shifting\
  1961.  to state %d\n", *yyssp, yytable[yyn]);
  1962. #endif
  1963.                 if (yyssp >= yyss + yystacksize - 1)
  1964.                 {
  1965.                     goto yyoverflow;
  1966.                 }
  1967.                 *++yyssp = yystate = yytable[yyn];
  1968.                 *++yyvsp = yylval;
  1969.                 goto yyloop;
  1970.             }
  1971.             else
  1972.             {
  1973. #if YYDEBUG
  1974.                 if (yydebug)
  1975.                     printf("yydebug: error recovery discarding state %d\n",
  1976.                             *yyssp);
  1977. #endif
  1978.                 if (yyssp <= yyss) goto yyabort;
  1979.                 --yyssp;
  1980.                 --yyvsp;
  1981.             }
  1982.         }
  1983.     }
  1984.     else
  1985.     {
  1986.         if (yychar == 0) goto yyabort;
  1987. #if YYDEBUG
  1988.         if (yydebug)
  1989.         {
  1990.             yys = 0;
  1991.             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  1992.             if (!yys) yys = "illegal-symbol";
  1993.             printf("yydebug: state %d, error recovery discards token %d (%s)\n",
  1994.                     yystate, yychar, yys);
  1995.         }
  1996. #endif
  1997.         yychar = (-1);
  1998.         goto yyloop;
  1999.     }
  2000. yyreduce:
  2001. #if YYDEBUG
  2002.     if (yydebug)
  2003.         printf("yydebug: state %d, reducing by rule %d (%s)\n",
  2004.                 yystate, yyn, yyrule[yyn]);
  2005. #endif
  2006.     yym = yylen[yyn];
  2007.     yyval = yyvsp[1-yym];
  2008.     switch (yyn)
  2009.     {
  2010. case 1:
  2011. #line 95 ":perly.y"
  2012. {
  2013. #if defined(YYDEBUG) && defined(DEBUGGING)
  2014.             yydebug = (debug & 1);
  2015. #endif
  2016.         }
  2017. break;
  2018. case 2:
  2019. #line 101 ":perly.y"
  2020. { if (in_eval)
  2021.                 eval_root = block_head(yyvsp[0].cmdval);
  2022.                 else
  2023.                 main_root = block_head(yyvsp[0].cmdval); }
  2024. break;
  2025. case 3:
  2026. #line 108 ":perly.y"
  2027. { yyval.compval.comp_true = yyvsp[-2].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; }
  2028. break;
  2029. case 4:
  2030. #line 110 ":perly.y"
  2031. { yyval.compval.comp_true = yyvsp[-1].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; }
  2032. break;
  2033. case 5:
  2034. #line 114 ":perly.y"
  2035. { yyval.cmdval = Nullcmd; }
  2036. break;
  2037. case 6:
  2038. #line 116 ":perly.y"
  2039. { yyval.cmdval = yyvsp[0].cmdval; }
  2040. break;
  2041. case 7:
  2042. #line 118 ":perly.y"
  2043. { cmdline = yyvsp[-4].ival;
  2044.                 yyval.cmdval = make_ccmd(C_ELSIF,yyvsp[-2].arg,yyvsp[0].compval); }
  2045. break;
  2046. case 8:
  2047. #line 123 ":perly.y"
  2048. { yyval.cmdval = block_head(yyvsp[-1].cmdval);
  2049.               if (cmdline > yyvsp[-3].ival)
  2050.                   cmdline = yyvsp[-3].ival;
  2051.               if (savestack->ary_fill > yyvsp[-2].ival)
  2052.                 restorelist(yyvsp[-2].ival); }
  2053. break;
  2054. case 9:
  2055. #line 131 ":perly.y"
  2056. { yyval.ival = savestack->ary_fill; }
  2057. break;
  2058. case 10:
  2059. #line 135 ":perly.y"
  2060. { yyval.cmdval = Nullcmd; }
  2061. break;
  2062. case 11:
  2063. #line 137 ":perly.y"
  2064. { yyval.cmdval = append_line(yyvsp[-1].cmdval,yyvsp[0].cmdval); }
  2065. break;
  2066. case 12:
  2067. #line 141 ":perly.y"
  2068. { yyval.cmdval = Nullcmd; }
  2069. break;
  2070. case 13:
  2071. #line 143 ":perly.y"
  2072. { yyval.cmdval = add_label(yyvsp[-1].cval,yyvsp[0].cmdval); }
  2073. break;
  2074. case 15:
  2075. #line 146 ":perly.y"
  2076. { if (yyvsp[-1].cval != Nullch) {
  2077.                   yyval.cmdval = add_label(yyvsp[-1].cval, make_acmd(C_EXPR, Nullstab,
  2078.                   Nullarg, Nullarg) );
  2079.                 }
  2080.                 else {
  2081.                   yyval.cmdval = Nullcmd;
  2082.                   cmdline = NOLINE;
  2083.                 } }
  2084. break;
  2085. case 16:
  2086. #line 155 ":perly.y"
  2087. { yyval.cmdval = add_label(yyvsp[-2].cval,yyvsp[-1].cmdval); }
  2088. break;
  2089. case 17:
  2090. #line 159 ":perly.y"
  2091. { yyval.cmdval = Nullcmd; }
  2092. break;
  2093. case 18:
  2094. #line 161 ":perly.y"
  2095. { yyval.cmdval = make_acmd(C_EXPR, Nullstab, yyvsp[0].arg, Nullarg); }
  2096. break;
  2097. case 19:
  2098. #line 163 ":perly.y"
  2099. { yyval.cmdval = addcond(
  2100.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); }
  2101. break;
  2102. case 20:
  2103. #line 166 ":perly.y"
  2104. { yyval.cmdval = addcond(invert(
  2105.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); }
  2106. break;
  2107. case 21:
  2108. #line 169 ":perly.y"
  2109. { yyval.cmdval = addloop(
  2110.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); }
  2111. break;
  2112. case 22:
  2113. #line 172 ":perly.y"
  2114. { yyval.cmdval = addloop(invert(
  2115.                    make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); }
  2116. break;
  2117. case 23:
  2118. #line 177 ":perly.y"
  2119. { cmdline = yyvsp[-4].ival;
  2120.                 yyval.cmdval = make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval); }
  2121. break;
  2122. case 24:
  2123. #line 180 ":perly.y"
  2124. { cmdline = yyvsp[-4].ival;
  2125.                 yyval.cmdval = invert(make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval)); }
  2126. break;
  2127. case 25:
  2128. #line 183 ":perly.y"
  2129. { cmdline = yyvsp[-2].ival;
  2130.                 yyval.cmdval = make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval); }
  2131. break;
  2132. case 26:
  2133. #line 186 ":perly.y"
  2134. { cmdline = yyvsp[-2].ival;
  2135.                 yyval.cmdval = invert(make_ccmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)); }
  2136. break;
  2137. case 27:
  2138. #line 191 ":perly.y"
  2139. { cmdline = yyvsp[-4].ival;
  2140.                 yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
  2141.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )); }
  2142. break;
  2143. case 28:
  2144. #line 195 ":perly.y"
  2145. { cmdline = yyvsp[-4].ival;
  2146.                 yyval.cmdval = wopt(add_label(yyvsp[-5].cval,
  2147.                 invert(make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval)) )); }
  2148. break;
  2149. case 29:
  2150. #line 199 ":perly.y"
  2151. { cmdline = yyvsp[-2].ival;
  2152.                 yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
  2153.                 make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval) )); }
  2154. break;
  2155. case 30:
  2156. #line 203 ":perly.y"
  2157. { cmdline = yyvsp[-2].ival;
  2158.                 yyval.cmdval = wopt(add_label(yyvsp[-3].cval,
  2159.                 invert(make_ccmd(C_WHILE, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)) )); }
  2160. break;
  2161. case 31:
  2162. #line 207 ":perly.y"
  2163. { cmdline = yyvsp[-5].ival;
  2164.                 /*
  2165.                  * The following gobbledygook catches EXPRs that
  2166.                  * aren't explicit array refs and translates
  2167.                  *        foreach VAR (EXPR) {
  2168.                  * into
  2169.                  *        @ary = EXPR;
  2170.                  *        foreach VAR (@ary) {
  2171.                  * where @ary is a hidden array made by genstab().
  2172.                  * (Note that @ary may become a local array if
  2173.                  * it is determined that it might be called
  2174.                  * recursively.  See cmd_tosave().)
  2175.                  */
  2176.                 if (yyvsp[-2].arg->arg_type != O_ARRAY) {
  2177.                 scrstab = aadd(genstab());
  2178.                 yyval.cmdval = append_line(
  2179.                     make_acmd(C_EXPR, Nullstab,
  2180.                       l(make_op(O_ASSIGN,2,
  2181.                     listish(make_op(O_ARRAY, 1,
  2182.                       stab2arg(A_STAB,scrstab),
  2183.                       Nullarg,Nullarg )),
  2184.                     listish(make_list(yyvsp[-2].arg)),
  2185.                     Nullarg)),
  2186.                       Nullarg),
  2187.                     wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
  2188.                       make_ccmd(C_WHILE,
  2189.                     make_op(O_ARRAY, 1,
  2190.                       stab2arg(A_STAB,scrstab),
  2191.                       Nullarg,Nullarg ),
  2192.                     yyvsp[0].compval)))));
  2193.                 yyval.cmdval->c_line = yyvsp[-5].ival;
  2194.                 yyval.cmdval->c_head->c_line = yyvsp[-5].ival;
  2195.                 }
  2196.                 else {
  2197.                 yyval.cmdval = wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval,
  2198.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
  2199.                 }
  2200.             }
  2201. break;
  2202. case 32:
  2203. #line 246 ":perly.y"
  2204. { cmdline = yyvsp[-4].ival;
  2205.                 if (yyvsp[-2].arg->arg_type != O_ARRAY) {
  2206.                 scrstab = aadd(genstab());
  2207.                 yyval.cmdval = append_line(
  2208.                     make_acmd(C_EXPR, Nullstab,
  2209.                       l(make_op(O_ASSIGN,2,
  2210.                     listish(make_op(O_ARRAY, 1,
  2211.                       stab2arg(A_STAB,scrstab),
  2212.                       Nullarg,Nullarg )),
  2213.                     listish(make_list(yyvsp[-2].arg)),
  2214.                     Nullarg)),
  2215.                       Nullarg),
  2216.                     wopt(over(defstab,add_label(yyvsp[-5].cval,
  2217.                       make_ccmd(C_WHILE,
  2218.                     make_op(O_ARRAY, 1,
  2219.                       stab2arg(A_STAB,scrstab),
  2220.                       Nullarg,Nullarg ),
  2221.                     yyvsp[0].compval)))));
  2222.                 yyval.cmdval->c_line = yyvsp[-4].ival;
  2223.                 yyval.cmdval->c_head->c_line = yyvsp[-4].ival;
  2224.                 }
  2225.                 else {    /* lisp, anyone? */
  2226.                 yyval.cmdval = wopt(over(defstab,add_label(yyvsp[-5].cval,
  2227.                 make_ccmd(C_WHILE,yyvsp[-2].arg,yyvsp[0].compval) )));
  2228.                 }
  2229.             }
  2230. break;
  2231. case 33:
  2232. #line 274 ":perly.y"
  2233. {   yyval.compval.comp_true = yyvsp[0].cmdval;
  2234.                 yyval.compval.comp_alt = yyvsp[-2].cmdval;
  2235.                 cmdline = yyvsp[-8].ival;
  2236.                 yyval.cmdval = append_line(yyvsp[-6].cmdval,wopt(add_label(yyvsp[-9].cval,
  2237.                 make_ccmd(C_WHILE,yyvsp[-4].arg,yyval.compval) ))); }
  2238. break;
  2239. case 34:
  2240. #line 280 ":perly.y"
  2241. { yyval.cmdval = add_label(yyvsp[-1].cval,make_ccmd(C_BLOCK,Nullarg,yyvsp[0].compval)); }
  2242. break;
  2243. case 35:
  2244. #line 284 ":perly.y"
  2245. { yyval.cmdval = Nullcmd; }
  2246. break;
  2247. case 37:
  2248. #line 289 ":perly.y"
  2249. { (void)scanstr("1"); yyval.arg = yylval.arg; }
  2250. break;
  2251. case 39:
  2252. #line 294 ":perly.y"
  2253. { yyval.cval = Nullch; }
  2254. break;
  2255. case 41:
  2256. #line 299 ":perly.y"
  2257. { yyval.ival = 0; }
  2258. break;
  2259. case 42:
  2260. #line 301 ":perly.y"
  2261. { yyval.ival = 0; }
  2262. break;
  2263. case 43:
  2264. #line 303 ":perly.y"
  2265. { yyval.ival = 0; }
  2266. break;
  2267. case 44:
  2268. #line 307 ":perly.y"
  2269. { if (strEQ(yyvsp[-2].cval,"stdout"))
  2270.                 make_form(stabent("STDOUT",TRUE),yyvsp[0].formval);
  2271.               else if (strEQ(yyvsp[-2].cval,"stderr"))
  2272.                 make_form(stabent("STDERR",TRUE),yyvsp[0].formval);
  2273.               else
  2274.                 make_form(stabent(yyvsp[-2].cval,TRUE),yyvsp[0].formval);
  2275.               Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; }
  2276. break;
  2277. case 45:
  2278. #line 315 ":perly.y"
  2279. { make_form(stabent("STDOUT",TRUE),yyvsp[0].formval); }
  2280. break;
  2281. case 46:
  2282. #line 319 ":perly.y"
  2283. { make_sub(yyvsp[-1].cval,yyvsp[0].cmdval);
  2284.               cmdline = NOLINE;
  2285.               if (savestack->ary_fill > yyvsp[-2].ival)
  2286.                 restorelist(yyvsp[-2].ival); }
  2287. break;
  2288. case 47:
  2289. #line 326 ":perly.y"
  2290. { char tmpbuf[256];
  2291.               STAB *tmpstab;
  2292.  
  2293.               savehptr(&curstash);
  2294.               saveitem(curstname);
  2295.               str_set(curstname,yyvsp[-1].cval);
  2296.               sprintf(tmpbuf,"'_%s",yyvsp[-1].cval);
  2297.               tmpstab = stabent(tmpbuf,TRUE);
  2298.               if (!stab_xhash(tmpstab))
  2299.                   stab_xhash(tmpstab) = hnew(0);
  2300.               curstash = stab_xhash(tmpstab);
  2301.               if (!curstash->tbl_name)
  2302.                   curstash->tbl_name = savestr(yyvsp[-1].cval);
  2303.               curstash->tbl_coeffsize = 0;
  2304.               Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch;
  2305.               cmdline = NOLINE;
  2306.             }
  2307. break;
  2308. case 48:
  2309. #line 346 ":perly.y"
  2310. { yyval.arg = yyvsp[0].arg; }
  2311. break;
  2312. case 49:
  2313. #line 350 ":perly.y"
  2314. { yyval.arg = make_op(O_COMMA, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2315. break;
  2316. case 51:
  2317. #line 355 ":perly.y"
  2318. { yyval.arg = yyvsp[0].arg; }
  2319. break;
  2320. case 52:
  2321. #line 359 ":perly.y"
  2322. {   yyvsp[-2].arg = listish(yyvsp[-2].arg);
  2323.                 if (yyvsp[-2].arg->arg_type == O_ASSIGN && yyvsp[-2].arg->arg_len == 1)
  2324.                 yyvsp[-2].arg->arg_type = O_ITEM;    /* a local() */
  2325.                 if (yyvsp[-2].arg->arg_type == O_LIST)
  2326.                 yyvsp[0].arg = listish(yyvsp[0].arg);
  2327.                 yyval.arg = l(make_op(O_ASSIGN, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg)); }
  2328. break;
  2329. case 53:
  2330. #line 366 ":perly.y"
  2331. { yyval.arg = l(make_op(O_POW, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
  2332. break;
  2333. case 54:
  2334. #line 368 ":perly.y"
  2335. { yyval.arg = l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
  2336. break;
  2337. case 55:
  2338. #line 370 ":perly.y"
  2339. { yyval.arg = rcatmaybe(l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)));}
  2340. break;
  2341. case 56:
  2342. #line 372 ":perly.y"
  2343. { yyval.arg = l(make_op(O_LEFT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
  2344. break;
  2345. case 57:
  2346. #line 374 ":perly.y"
  2347. { yyval.arg = l(make_op(O_RIGHT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
  2348. break;
  2349. case 58:
  2350. #line 376 ":perly.y"
  2351. { yyval.arg = l(make_op(O_BIT_AND, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
  2352. break;
  2353. case 59:
  2354. #line 378 ":perly.y"
  2355. { yyval.arg = l(make_op(O_XOR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
  2356. break;
  2357. case 60:
  2358. #line 380 ":perly.y"
  2359. { yyval.arg = l(make_op(O_BIT_OR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); }
  2360. break;
  2361. case 61:
  2362. #line 384 ":perly.y"
  2363. { yyval.arg = make_op(O_POW, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2364. break;
  2365. case 62:
  2366. #line 386 ":perly.y"
  2367. { if (yyvsp[-1].ival == O_REPEAT)
  2368.                   yyvsp[-2].arg = listish(yyvsp[-2].arg);
  2369.                 yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg);
  2370.                 if (yyvsp[-1].ival == O_REPEAT) {
  2371.                 if (yyval.arg[1].arg_type != A_EXPR ||
  2372.                   yyval.arg[1].arg_ptr.arg_arg->arg_type != O_LIST)
  2373.                     yyval.arg[1].arg_flags &= ~AF_ARYOK;
  2374.                 } }
  2375. break;
  2376. case 63:
  2377. #line 395 ":perly.y"
  2378. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2379. break;
  2380. case 64:
  2381. #line 397 ":perly.y"
  2382. { yyval.arg = make_op(O_LEFT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2383. break;
  2384. case 65:
  2385. #line 399 ":perly.y"
  2386. { yyval.arg = make_op(O_RIGHT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2387. break;
  2388. case 66:
  2389. #line 401 ":perly.y"
  2390. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2391. break;
  2392. case 67:
  2393. #line 403 ":perly.y"
  2394. { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2395. break;
  2396. case 68:
  2397. #line 405 ":perly.y"
  2398. { yyval.arg = make_op(O_BIT_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2399. break;
  2400. case 69:
  2401. #line 407 ":perly.y"
  2402. { yyval.arg = make_op(O_XOR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2403. break;
  2404. case 70:
  2405. #line 409 ":perly.y"
  2406. { yyval.arg = make_op(O_BIT_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2407. break;
  2408. case 71:
  2409. #line 411 ":perly.y"
  2410. { arg4 = Nullarg;
  2411.               yyval.arg = make_op(O_F_OR_R, 4, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2412. break;
  2413. case 72:
  2414. #line 414 ":perly.y"
  2415. { yyval.arg = make_op(O_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2416. break;
  2417. case 73:
  2418. #line 416 ":perly.y"
  2419. { yyval.arg = make_op(O_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); }
  2420. break;
  2421. case 74:
  2422. #line 418 ":perly.y"
  2423. { yyval.arg = make_op(O_COND_EXPR, 3, yyvsp[-4].arg, yyvsp[-2].arg, yyvsp[0].arg); }
  2424. break;
  2425. case 75:
  2426. #line 420 ":perly.y"
  2427. { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg, yyvsp[0].arg); }
  2428. break;
  2429. case 76:
  2430. #line 422 ":perly.y"
  2431. { yyval.arg = mod_match(O_NMATCH, yyvsp[-2].arg, yyvsp[0].arg); }
  2432. break;
  2433. case 77:
  2434. #line 424 ":perly.y"
  2435. { yyval.arg = yyvsp[0].arg; }
  2436. break;
  2437. case 78:
  2438. #line 428 ":perly.y"
  2439. { yyval.arg = make_op(O_NEGATE, 1, yyvsp[0].arg, Nullarg, Nullarg); }
  2440. break;
  2441. case 79:
  2442. #line 430 ":perly.y"
  2443. { yyval.arg = yyvsp[0].arg; }
  2444. break;
  2445. case 80:
  2446. #line 432 ":perly.y"
  2447. { yyval.arg = make_op(O_NOT, 1, yyvsp[0].arg, Nullarg, Nullarg); }
  2448. break;
  2449. case 81:
  2450. #line 434 ":perly.y"
  2451. { yyval.arg = make_op(O_COMPLEMENT, 1, yyvsp[0].arg, Nullarg, Nullarg);}
  2452. break;
  2453. case 82:
  2454. #line 436 ":perly.y"
  2455. { yyval.arg = addflags(1, AF_POST|AF_UP,
  2456.                 l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); }
  2457. break;
  2458. case 83:
  2459. #line 439 ":perly.y"
  2460. { yyval.arg = addflags(1, AF_POST,
  2461.                 l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); }
  2462. break;
  2463. case 84:
  2464. #line 442 ":perly.y"
  2465. { yyval.arg = addflags(1, AF_PRE|AF_UP,
  2466.                 l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); }
  2467. break;
  2468. case 85:
  2469. #line 445 ":perly.y"
  2470. { yyval.arg = addflags(1, AF_PRE,
  2471.                 l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); }
  2472. break;
  2473. case 86:
  2474. #line 448 ":perly.y"
  2475. { opargs[yyvsp[-1].ival] = 0;    /* force it special */
  2476.                 yyval.arg = make_op(yyvsp[-1].ival, 1,
  2477.                 stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
  2478.                 Nullarg, Nullarg);
  2479.             }
  2480. break;
  2481. case 87:
  2482. #line 454 ":perly.y"
  2483. { opargs[yyvsp[-1].ival] = 1;
  2484.                 yyval.arg = make_op(yyvsp[-1].ival, 1, yyvsp[0].arg, Nullarg, Nullarg); }
  2485. break;
  2486. case 88:
  2487. #line 457 ":perly.y"
  2488. { opargs[yyvsp[0].ival] = (yyvsp[0].ival != O_FTTTY);
  2489.                 yyval.arg = make_op(yyvsp[0].ival, 1,
  2490.                 stab2arg(A_STAB,
  2491.                   yyvsp[0].ival == O_FTTTY?stabent("STDIN",TRUE):defstab),
  2492.                 Nullarg, Nullarg); }
  2493. break;
  2494. case 89:
  2495. #line 463 ":perly.y"
  2496. { yyval.arg = l(localize(make_op(O_ASSIGN, 1,
  2497.                 localize(listish(make_list(yyvsp[-1].arg))),
  2498.                 Nullarg,Nullarg))); }
  2499. break;
  2500. case 90:
  2501. #line 467 ":perly.y"
  2502. { yyval.arg = make_list(yyvsp[-1].arg); }
  2503. break;
  2504. case 91:
  2505. #line 469 ":perly.y"
  2506. { yyval.arg = make_list(Nullarg); }
  2507. break;
  2508. case 92:
  2509. #line 471 ":perly.y"
  2510. { yyval.arg = make_op(O_DOFILE,2,yyvsp[0].arg,Nullarg,Nullarg);
  2511.               allstabs = TRUE;}
  2512. break;
  2513. case 93:
  2514. #line 474 ":perly.y"
  2515. { yyval.arg = cmd_to_arg(yyvsp[0].cmdval); }
  2516. break;
  2517. case 94:
  2518. #line 476 ":perly.y"
  2519. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
  2520. break;
  2521. case 95:
  2522. #line 478 ":perly.y"
  2523. { yyval.arg = stab2arg(A_STAR,yyvsp[0].stabval); }
  2524. break;
  2525. case 96:
  2526. #line 480 ":perly.y"
  2527. { yyval.arg = make_op(O_AELEM, 2,
  2528.                 stab2arg(A_STAB,aadd(yyvsp[-3].stabval)), yyvsp[-1].arg, Nullarg); }
  2529. break;
  2530. case 97:
  2531. #line 483 ":perly.y"
  2532. { yyval.arg = make_op(O_HASH, 1,
  2533.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2534.                 Nullarg, Nullarg); }
  2535. break;
  2536. case 98:
  2537. #line 487 ":perly.y"
  2538. { yyval.arg = make_op(O_ARRAY, 1,
  2539.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2540.                 Nullarg, Nullarg); }
  2541. break;
  2542. case 99:
  2543. #line 491 ":perly.y"
  2544. { yyval.arg = make_op(O_HELEM, 2,
  2545.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  2546.                 jmaybe(yyvsp[-1].arg),
  2547.                 Nullarg); }
  2548. break;
  2549. case 100:
  2550. #line 496 ":perly.y"
  2551. { yyval.arg = make_op(O_LSLICE, 3,
  2552.                 Nullarg,
  2553.                 listish(make_list(yyvsp[-1].arg)),
  2554.                 listish(make_list(yyvsp[-4].arg))); }
  2555. break;
  2556. case 101:
  2557. #line 501 ":perly.y"
  2558. { yyval.arg = make_op(O_LSLICE, 3,
  2559.                 Nullarg,
  2560.                 listish(make_list(yyvsp[-1].arg)),
  2561.                 Nullarg); }
  2562. break;
  2563. case 102:
  2564. #line 506 ":perly.y"
  2565. { yyval.arg = make_op(O_ASLICE, 2,
  2566.                 stab2arg(A_STAB,aadd(yyvsp[-3].stabval)),
  2567.                 listish(make_list(yyvsp[-1].arg)),
  2568.                 Nullarg); }
  2569. break;
  2570. case 103:
  2571. #line 511 ":perly.y"
  2572. { yyval.arg = make_op(O_HSLICE, 2,
  2573.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  2574.                 listish(make_list(yyvsp[-1].arg)),
  2575.                 Nullarg); }
  2576. break;
  2577. case 104:
  2578. #line 516 ":perly.y"
  2579. { yyval.arg = make_op(O_DELETE, 2,
  2580.                 stab2arg(A_STAB,hadd(yyvsp[-3].stabval)),
  2581.                 jmaybe(yyvsp[-1].arg),
  2582.                 Nullarg); }
  2583. break;
  2584. case 105:
  2585. #line 521 ":perly.y"
  2586. { yyval.arg = stab2arg(A_ARYLEN,yyvsp[0].stabval); }
  2587. break;
  2588. case 106:
  2589. #line 523 ":perly.y"
  2590. { yyval.arg = yyvsp[0].arg; }
  2591. break;
  2592. case 107:
  2593. #line 525 ":perly.y"
  2594. { yyval.arg = yyvsp[0].arg; }
  2595. break;
  2596. case 108:
  2597. #line 527 ":perly.y"
  2598. { yyval.arg = yyvsp[0].arg; }
  2599. break;
  2600. case 109:
  2601. #line 529 ":perly.y"
  2602. { yyval.arg = yyvsp[0].arg; }
  2603. break;
  2604. case 110:
  2605. #line 531 ":perly.y"
  2606. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2607.                 stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
  2608.                 make_list(yyvsp[-1].arg),
  2609.                 Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch;
  2610.                 yyval.arg->arg_flags |= AF_DEPR; }
  2611. break;
  2612. case 111:
  2613. #line 537 ":perly.y"
  2614. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2615.                 stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)),
  2616.                 make_list(yyvsp[-1].arg),
  2617.                 Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch; }
  2618. break;
  2619. case 112:
  2620. #line 542 ":perly.y"
  2621. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2622.                 stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
  2623.                 make_list(Nullarg),
  2624.                 Nullarg);
  2625.                 yyval.arg->arg_flags |= AF_DEPR; }
  2626. break;
  2627. case 113:
  2628. #line 548 ":perly.y"
  2629. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2630.                 stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)),
  2631.                 make_list(Nullarg),
  2632.                 Nullarg); }
  2633. break;
  2634. case 114:
  2635. #line 553 ":perly.y"
  2636. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2637.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,MULTI)),
  2638.                 Nullarg,
  2639.                 Nullarg); }
  2640. break;
  2641. case 115:
  2642. #line 558 ":perly.y"
  2643. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2644.                 stab2arg(A_STAB,yyvsp[-3].stabval),
  2645.                 make_list(yyvsp[-1].arg),
  2646.                 Nullarg);
  2647.                 yyval.arg->arg_flags |= AF_DEPR; }
  2648. break;
  2649. case 116:
  2650. #line 564 ":perly.y"
  2651. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2652.                 stab2arg(A_STAB,yyvsp[-3].stabval),
  2653.                 make_list(yyvsp[-1].arg),
  2654.                 Nullarg); }
  2655. break;
  2656. case 117:
  2657. #line 569 ":perly.y"
  2658. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2659.                 stab2arg(A_STAB,yyvsp[-2].stabval),
  2660.                 make_list(Nullarg),
  2661.                 Nullarg);
  2662.                 yyval.arg->arg_flags |= AF_DEPR; }
  2663. break;
  2664. case 118:
  2665. #line 575 ":perly.y"
  2666. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2667.                 stab2arg(A_STAB,yyvsp[-2].stabval),
  2668.                 make_list(Nullarg),
  2669.                 Nullarg); }
  2670. break;
  2671. case 119:
  2672. #line 580 ":perly.y"
  2673. { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2,
  2674.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2675.                 Nullarg,
  2676.                 Nullarg); }
  2677. break;
  2678. case 120:
  2679. #line 585 ":perly.y"
  2680. { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); }
  2681. break;
  2682. case 121:
  2683. #line 587 ":perly.y"
  2684. { yyval.arg = make_op(yyvsp[-1].ival,1,cval_to_arg(yyvsp[0].cval),
  2685.                 Nullarg,Nullarg); }
  2686. break;
  2687. case 122:
  2688. #line 590 ":perly.y"
  2689. { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); }
  2690. break;
  2691. case 123:
  2692. #line 592 ":perly.y"
  2693. { yyval.arg = make_op(yyvsp[-1].ival,1,cmd_to_arg(yyvsp[0].cmdval),Nullarg,Nullarg); }
  2694. break;
  2695. case 124:
  2696. #line 594 ":perly.y"
  2697. { yyval.arg = make_op(yyvsp[-1].ival,1,yyvsp[0].arg,Nullarg,Nullarg); }
  2698. break;
  2699. case 125:
  2700. #line 596 ":perly.y"
  2701. { yyval.arg = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);}
  2702. break;
  2703. case 126:
  2704. #line 598 ":perly.y"
  2705. { yyval.arg = make_op(O_SELECT, 1,
  2706.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2707.                 Nullarg,
  2708.                 Nullarg);
  2709.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
  2710. break;
  2711. case 127:
  2712. #line 604 ":perly.y"
  2713. { yyval.arg = make_op(O_SELECT, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
  2714. break;
  2715. case 128:
  2716. #line 606 ":perly.y"
  2717. { arg4 = yyvsp[-1].arg;
  2718.               yyval.arg = make_op(O_SSELECT, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
  2719. break;
  2720. case 129:
  2721. #line 609 ":perly.y"
  2722. { yyval.arg = make_op(O_OPEN, 2,
  2723.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2724.                 stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)),
  2725.                 Nullarg); }
  2726. break;
  2727. case 130:
  2728. #line 614 ":perly.y"
  2729. { yyval.arg = make_op(O_OPEN, 2,
  2730.                 stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
  2731.                 stab2arg(A_STAB,stabent(yyvsp[-1].cval,TRUE)),
  2732.                 Nullarg); }
  2733. break;
  2734. case 131:
  2735. #line 619 ":perly.y"
  2736. { yyval.arg = make_op(O_OPEN, 2,
  2737.                 yyvsp[-2].arg,
  2738.                 yyvsp[-1].arg, Nullarg); }
  2739. break;
  2740. case 132:
  2741. #line 623 ":perly.y"
  2742. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2743.                 yyvsp[-1].arg,
  2744.                 Nullarg, Nullarg); }
  2745. break;
  2746. case 133:
  2747. #line 627 ":perly.y"
  2748. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2749.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2750.                 Nullarg, Nullarg);
  2751.               Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
  2752. break;
  2753. case 134:
  2754. #line 632 ":perly.y"
  2755. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2756.                 stab2arg(A_STAB,yyvsp[0].stabval),
  2757.                 Nullarg, Nullarg); }
  2758. break;
  2759. case 135:
  2760. #line 636 ":perly.y"
  2761. { yyval.arg = make_op(yyvsp[-2].ival, 1,
  2762.                 stab2arg(A_WORD,Nullstab),
  2763.                 Nullarg, Nullarg); }
  2764. break;
  2765. case 136:
  2766. #line 640 ":perly.y"
  2767. { yyval.arg = make_op(yyvsp[0].ival, 0,
  2768.                 Nullarg, Nullarg, Nullarg); }
  2769. break;
  2770. case 137:
  2771. #line 643 ":perly.y"
  2772. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); }
  2773. break;
  2774. case 138:
  2775. #line 645 ":perly.y"
  2776. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, make_list(yyvsp[-1].arg)); }
  2777. break;
  2778. case 139:
  2779. #line 647 ":perly.y"
  2780. { yyval.arg = make_op(yyvsp[-5].ival, 2, yyvsp[-3].arg, yyvsp[-1].arg, Nullarg); }
  2781. break;
  2782. case 140:
  2783. #line 649 ":perly.y"
  2784. { arg4 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
  2785. break;
  2786. case 141:
  2787. #line 651 ":perly.y"
  2788. { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
  2789.               yyval.arg = make_op(yyvsp[-8].ival, 5, yyvsp[-6].arg, yyvsp[-4].arg, yyvsp[-3].arg); }
  2790. break;
  2791. case 142:
  2792. #line 654 ":perly.y"
  2793. { yyval.arg = make_op(yyvsp[-5].ival, 2,
  2794.                 yyvsp[-3].arg,
  2795.                 make_list(yyvsp[-1].arg),
  2796.                 Nullarg); }
  2797. break;
  2798. case 143:
  2799. #line 659 ":perly.y"
  2800. { yyval.arg = make_op(O_POP, 1, yyvsp[0].arg, Nullarg, Nullarg); }
  2801. break;
  2802. case 144:
  2803. #line 661 ":perly.y"
  2804. { yyval.arg = make_op(O_POP, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
  2805. break;
  2806. case 145:
  2807. #line 663 ":perly.y"
  2808. { yyval.arg = make_op(O_SHIFT, 1, yyvsp[0].arg, Nullarg, Nullarg); }
  2809. break;
  2810. case 146:
  2811. #line 665 ":perly.y"
  2812. { yyval.arg = make_op(O_SHIFT, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
  2813. break;
  2814. case 147:
  2815. #line 667 ":perly.y"
  2816. { yyval.arg = make_op(O_SHIFT, 1,
  2817.                 stab2arg(A_STAB,
  2818.                   aadd(stabent(subline ? "_" : "ARGV", TRUE))),
  2819.                 Nullarg, Nullarg); }
  2820. break;
  2821. case 148:
  2822. #line 672 ":perly.y"
  2823. {   static char p[]="/\\s+/";
  2824.                 char *oldend = bufend;
  2825.                 ARG *oldarg = yylval.arg;
  2826.                 
  2827.                 bufend=p+5;
  2828.                 (void)scanpat(p);
  2829.                 bufend=oldend;
  2830.                 yyval.arg = make_split(defstab,yylval.arg,Nullarg);
  2831.                 yylval.arg = oldarg; }
  2832. break;
  2833. case 149:
  2834. #line 682 ":perly.y"
  2835. { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg,
  2836.               make_split(defstab,yyvsp[-3].arg,yyvsp[-1].arg));}
  2837. break;
  2838. case 150:
  2839. #line 685 ":perly.y"
  2840. { yyval.arg = mod_match(O_MATCH, yyvsp[-1].arg,
  2841.               make_split(defstab,yyvsp[-2].arg,Nullarg) ); }
  2842. break;
  2843. case 151:
  2844. #line 688 ":perly.y"
  2845. { yyval.arg = mod_match(O_MATCH,
  2846.                 stab2arg(A_STAB,defstab),
  2847.                 make_split(defstab,yyvsp[-1].arg,Nullarg) ); }
  2848. break;
  2849. case 152:
  2850. #line 692 ":perly.y"
  2851. { yyval.arg = make_op(yyvsp[-4].ival, 2,
  2852.                 yyvsp[-2].arg,
  2853.                 listish(make_list(yyvsp[-1].arg)),
  2854.                 Nullarg); }
  2855. break;
  2856. case 153:
  2857. #line 697 ":perly.y"
  2858. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2859.                 make_list(yyvsp[-1].arg),
  2860.                 Nullarg,
  2861.                 Nullarg); }
  2862. break;
  2863. case 154:
  2864. #line 702 ":perly.y"
  2865. { yyval.arg = l(make_op(yyvsp[-1].ival, 1, fixl(yyvsp[-1].ival,yyvsp[0].arg),
  2866.                 Nullarg, Nullarg)); }
  2867. break;
  2868. case 155:
  2869. #line 705 ":perly.y"
  2870. { yyval.arg = l(make_op(yyvsp[0].ival, 1,
  2871.                 stab2arg(A_STAB,defstab),
  2872.                 Nullarg, Nullarg)); }
  2873. break;
  2874. case 156:
  2875. #line 709 ":perly.y"
  2876. { yyval.arg = make_op(yyvsp[0].ival, 0, Nullarg, Nullarg, Nullarg); }
  2877. break;
  2878. case 157:
  2879. #line 711 ":perly.y"
  2880. { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); }
  2881. break;
  2882. case 158:
  2883. #line 713 ":perly.y"
  2884. { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); }
  2885. break;
  2886. case 159:
  2887. #line 715 ":perly.y"
  2888. { yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); }
  2889. break;
  2890. case 160:
  2891. #line 717 ":perly.y"
  2892. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
  2893.                 if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2894.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
  2895. break;
  2896. case 161:
  2897. #line 721 ":perly.y"
  2898. { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg);
  2899.                 if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2900.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
  2901. break;
  2902. case 162:
  2903. #line 725 ":perly.y"
  2904. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg);
  2905.                 if (yyvsp[-5].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE)
  2906.                 fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); }
  2907. break;
  2908. case 163:
  2909. #line 729 ":perly.y"
  2910. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); }
  2911. break;
  2912. case 164:
  2913. #line 731 ":perly.y"
  2914. { arg4 = yyvsp[-1].arg;
  2915.               yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); }
  2916. break;
  2917. case 165:
  2918. #line 734 ":perly.y"
  2919. { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg;
  2920.               yyval.arg = make_op(yyvsp[-7].ival, 5, yyvsp[-5].arg, yyvsp[-4].arg, yyvsp[-3].arg); }
  2921. break;
  2922. case 166:
  2923. #line 737 ":perly.y"
  2924. { yyval.arg = make_op(yyvsp[-3].ival, 1,
  2925.                 yyvsp[-1].arg,
  2926.                 Nullarg,
  2927.                 Nullarg); }
  2928. break;
  2929. case 167:
  2930. #line 742 ":perly.y"
  2931. { yyval.arg = make_op(yyvsp[-1].ival, 1,
  2932.                 yyvsp[0].arg,
  2933.                 Nullarg,
  2934.                 Nullarg); }
  2935. break;
  2936. case 168:
  2937. #line 747 ":perly.y"
  2938. { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); }
  2939. break;
  2940. case 171:
  2941. #line 753 ":perly.y"
  2942. { yyval.arg = make_op(yyvsp[0].ival,2,
  2943.                 stab2arg(A_WORD,Nullstab),
  2944.                 stab2arg(A_STAB,defstab),
  2945.                 Nullarg); }
  2946. break;
  2947. case 172:
  2948. #line 758 ":perly.y"
  2949. { yyval.arg = make_op(yyvsp[-1].ival,2,
  2950.                 stab2arg(A_WORD,Nullstab),
  2951.                 maybelistish(yyvsp[-1].ival,make_list(yyvsp[0].arg)),
  2952.                 Nullarg); }
  2953. break;
  2954. case 173:
  2955. #line 763 ":perly.y"
  2956. { yyval.arg = make_op(yyvsp[-1].ival,2,
  2957.                 stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)),
  2958.                 stab2arg(A_STAB,defstab),
  2959.                 Nullarg); }
  2960. break;
  2961. case 174:
  2962. #line 768 ":perly.y"
  2963. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2964.                 stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)),
  2965.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2966.                 Nullarg); Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; }
  2967. break;
  2968. case 175:
  2969. #line 773 ":perly.y"
  2970. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2971.                 stab2arg(A_STAB,yyvsp[-1].stabval),
  2972.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2973.                 Nullarg); }
  2974. break;
  2975. case 176:
  2976. #line 778 ":perly.y"
  2977. { yyval.arg = make_op(yyvsp[-2].ival,2,
  2978.                 cmd_to_arg(yyvsp[-1].cmdval),
  2979.                 maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)),
  2980.                 Nullarg); }
  2981. break;
  2982. case 177:
  2983. #line 785 ":perly.y"
  2984. { yyval.arg = stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE));
  2985.               Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;}
  2986. break;
  2987. case 179:
  2988. #line 791 ":perly.y"
  2989. { yyval.arg = stab2arg(A_WORD,aadd(stabent(yyvsp[0].cval,TRUE)));
  2990.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
  2991. break;
  2992. case 180:
  2993. #line 794 ":perly.y"
  2994. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
  2995. break;
  2996. case 181:
  2997. #line 798 ":perly.y"
  2998. { yyval.arg = stab2arg(A_WORD,hadd(stabent(yyvsp[0].cval,TRUE)));
  2999.                 Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; }
  3000. break;
  3001. case 182:
  3002. #line 801 ":perly.y"
  3003. { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); }
  3004. break;
  3005. case 183:
  3006. #line 805 ":perly.y"
  3007. { yyval.ival = 1; }
  3008. break;
  3009. case 184:
  3010. #line 807 ":perly.y"
  3011. { yyval.ival = 0; }
  3012. break;
  3013. case 185:
  3014. #line 816 ":perly.y"
  3015. { char *s;
  3016.                 yyval.arg = op_new(1);
  3017.                 yyval.arg->arg_type = O_ITEM;
  3018.                 yyval.arg[1].arg_type = A_SINGLE;
  3019.                 yyval.arg[1].arg_ptr.arg_str = str_make(yyvsp[0].cval,0);
  3020.                 for (s = yyvsp[0].cval; *s && isLOWER(*s); s++) ;
  3021.                 if (dowarn && !*s)
  3022.                 warn(
  3023.                   "\"%s\" may clash with future reserved word",
  3024.                   yyvsp[0].cval );
  3025.             }
  3026. break;
  3027. #line 3028 "y.tab.c"
  3028.     }
  3029.     yyssp -= yym;
  3030.     yystate = *yyssp;
  3031.     yyvsp -= yym;
  3032.     yym = yylhs[yyn];
  3033.     if (yystate == 0 && yym == 0)
  3034.     {
  3035. #if YYDEBUG
  3036.         if (yydebug)
  3037.             printf("yydebug: after reduction, shifting from state 0 to\
  3038.  state %d\n", YYFINAL);
  3039. #endif
  3040.         yystate = YYFINAL;
  3041.         *++yyssp = YYFINAL;
  3042.         *++yyvsp = yyval;
  3043.         if (yychar < 0)
  3044.         {
  3045.             if ((yychar = yylex()) < 0) yychar = 0;
  3046. #if YYDEBUG
  3047.             if (yydebug)
  3048.             {
  3049.                 yys = 0;
  3050.                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  3051.                 if (!yys) yys = "illegal-symbol";
  3052.                 printf("yydebug: state %d, reading %d (%s)\n",
  3053.                         YYFINAL, yychar, yys);
  3054.             }
  3055. #endif
  3056.         }
  3057.         if (yychar == 0) goto yyaccept;
  3058.         goto yyloop;
  3059.     }
  3060.     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
  3061.             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
  3062.         yystate = yytable[yyn];
  3063.     else
  3064.         yystate = yydgoto[yym];
  3065. #if YYDEBUG
  3066.     if (yydebug)
  3067.         printf("yydebug: after reduction, shifting from state %d \
  3068. to state %d\n", *yyssp, yystate);
  3069. #endif
  3070.     if (yyssp >= yyss + yystacksize - 1)
  3071.     {
  3072.         goto yyoverflow;
  3073.     }
  3074.     *++yyssp = yystate;
  3075.     *++yyvsp = yyval;
  3076.     goto yyloop;
  3077. yyoverflow:
  3078.     yyerror("yacc stack overflow");
  3079. yyabort:
  3080.     return (1);
  3081. yyaccept:
  3082.     return (0);
  3083. }
  3084.